8

对于我根据规范编写的程序,变量作为字符串传递给函数。我需要将该字符串设置为 char 变量以设置另一个变量。我该怎么做呢?

这是头文件中的内容:

void setDisplayChar(char displayCharToSet);

这是设置它的函数:

void Entity::setElementData(string elementName, string value){
    if(elementName == "name"){
            setName(value);
    }
    else if(elementName == "displayChar"){
    //      char c;
      //      c = value.c_str();
            setDisplayChar('x');//cant get it to convert :(
    }
    else if(elementName == "property"){
            this->properties.push_back(value);
    }
}

感谢您在高级的帮助!

4

2 回答 2

12

您可以简单地通过索引从字符串中获取特定字符。例如,的第五个字符strstr[4](因为第一个字符是 ,所以减一str[0])。

请记住,如果字符串比您的索引认为的短,您会遇到问题。

c_str(),正如您在评论中所说,为您提供了一个char*表示形式(整个字符串作为 C“字符串”,更准确地说是指向第一个字符的指针)而不是char.

您可以同样索引它,但在这种特殊情况下没有意义。

于 2013-02-12T04:47:51.400 回答
5

您只需要使用 value[0] 并返回第一个字符。

char c = value[0];
于 2013-02-12T04:47:39.763 回答