web-dev-qa-db-ja.com

文字列から文字への変換-c ++

私が仕様に基づいて書いているプログラムの場合、変数は文字列として関数に渡されます。別の変数を設定するには、その文字列を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);
    }
}

高度な助けをありがとう!

6
ModdedLife

文字列にインデックスを付けるだけで、文字列から特定の文字を取得できます。たとえば、strの5番目の文字はstr[4]です(最初の文字はstr[0]であるため、1つずれています)。

文字列がインデックスで想定されているよりも短い場合、問題が発生することに注意してください。

c_str()は、コメントにあるように、charではなくchar*表現(文字列全体をC "文字列"として、より正確には最初の文字へのポインタ)を提供します。

同様にインデックスを付けることもできますが、この特定のケースでは意味がありません。

9
paxdiablo

value [0]を使用するだけで、最初の文字が返されます。

char c = value[0];
4
Luis Tellez