2013-02-12 17 views
5

仕様に基づいて書いているプログラムの場合、変数は文字列として関数に渡されます。別の変数を設定するには、その文字列をchar変数に設定する必要があります。これをどうやってやりますか?文字列からchar-C++への変換

これは、それがヘッダファイルである:

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); 
    } 
} 

ありがとう!

+3

最初の文字を渡したいだけですか? 'value [0]'。 – chris

+0

値が1文字であることを理想的に確認してください。また:const&;で渡す) –

答えて

6

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

文字列がインデックスよりも短いと思われる場合は、問題が発生することに注意してください。あなたの意見を持っているよう

c_str()は、あなたにchar*表現ではなく、char(より正確にC「文字列」、最初の文字へのポインタとして文字列全体を)与えます。

同じようにインデックスを作成できますが、この特定のケースでは何の意味もありません。

+0

Yessssss !!!ありがとうございました!ハハIdkなぜ私はそれを最初に試していない。それはあまりにも単純なようだった。 – ModdedLife

4

あなたはvalue [0]を使用するだけで、最初のcharを返します。

char c = value[0]; 
関連する問題