私が仕様に基づいて書いているプログラムの場合、変数は文字列として関数に渡されます。別の変数を設定するには、その文字列を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);
}
}
高度な助けをありがとう!
文字列にインデックスを付けるだけで、文字列から特定の文字を取得できます。たとえば、str
の5番目の文字はstr[4]
です(最初の文字はstr[0]
であるため、1つずれています)。
文字列がインデックスで想定されているよりも短い場合、問題が発生することに注意してください。
c_str()
は、コメントにあるように、char
ではなくchar*
表現(文字列全体をC "文字列"として、より正確には最初の文字へのポインタ)を提供します。
同様にインデックスを付けることもできますが、この特定のケースでは意味がありません。
value [0]を使用するだけで、最初の文字が返されます。
char c = value[0];