对于我根据规范编写的程序,变量作为字符串传递给函数。我需要将该字符串设置为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);
}
}
感谢先进的帮助!
答案 0 :(得分:9)
您只需通过索引即可从字符串中获取特定字符。例如,str
的第五个字符为str[4]
(由于第一个字符为str[0]
,因此关闭一个字段。)
请记住,如果字符串短于索引认为的字符串,则会遇到问题。
c_str()
,正如您在评论中所提到的那样,为您提供char*
表示(整个字符串为C“字符串”,更准确地说是指向第一个字符的指针)而不是{{ 1}}。
你可以同样索引,但在这种特殊情况下没有意义。
答案 1 :(得分:4)
你只需要使用值[0]并返回第一个字符。
char c = value[0];