2016-11-18 11 views
-3
char gamerCentral::getGamerTag() 
{ 
    switch(gamerTag) 
      { 

     case '1': return gamerTag = "Diamond"; 
        break; 
     case '2': return gamerTag = "Silver"; 
        break; 
     case '3': return gamerTag = "Bronze"; 
        break; 
     case '4': return gamerTag = "Wood"; 
        break;  
     default: return gamerTag = "Uninstall"; 

     break; 
      } 

char gamerTag; 

GamerClub::GamerClub(
     char tag) 
    { 
    gamerTag = tag; 


} 

私はgamerTagを返そうとしていますが、文字列に変換できないと言います。 switch文の中でcharを文字列に変換する方法はありますか?Switch文は文字列を出力しません

+2

は[XY問題(http://xyproblem.infoように思えます/)。なぜ文字列型を使用して文字列を格納しないのですか? – MikeCAT

+0

機能の署名を変更する必要があります。 charはcharです。ここではcharよりも大きなものが必要です。最も近いものは 'const char *'になります。詳細は見たい場合はこちらをご覧ください(http://stackoverflow.com/questions/7352099/stdstring-to-char)。 –

+0

文字列全体を単なる低いchar型の変数にどのように割り当てることができると思いますか? –

答えて

3

関数が文字列を返すようにしても、入力として1文字で操作できます。ここに例があります。

std::string getGamerTag(char t) 
{ 
    switch(t) 
    { 
     case '1': return "Diamond"; 
     case '2': return "Silver"; 
     // ... 
    } 

    return ""; 
} 

// prints "Silver" 
cout << getGamerTag('2'); 
+0

ストリングgamerCentral :: getGamerTag(チャーゲーマータグ) {スイッチ(ゲーマータグ) { 場合 '1':リターンゲーマータグ= "ダイアモンド"。 case '2':return gamerTag = "Silver"; ケース '3':return gamerTag = "Bronze"; ケース '4':return gamerTag = "Wood"; デフォルト:return gamerTag = "アンインストール"; } – theDon

+0

これは私が置いているものですが、それはまだ変換されません。 – theDon

+0

私はまだ間違っていることがわかりません.... – theDon

0

使用文字列変数または

char* getGamerTag(int t) 
{ 
    switch(t) 
    { 
     case 1: return "Diamond"; 
     case 2: return "Silver"; 
    } 
} 
int main() 
{ 
    cout << getGamerTag(2); 
} 
0

* CHARを使用し、私は文字列の配列を使用することをお勧めします:

std::string getGamerTag(unsigned int t) 
{ 
    static const char * tag_names[] = 
    { 
    "Diamond", "Silver", "Bronze", "Wood", "Unistall", 
    }; 
    static const unsigned int name_quantity = 
    sizeof(tag_names)/sizeof(tag_names[0]); 

    std::string name; 
    if ((t > 0) && (t <= name_quantity)) 
    { 
    name = tag_names[t - 1]; 
    } 
    return name; 
} 
関連する問題