2016-03-04 73 views
0

現在我可以創建一個程序,只將單詞的第一個字母轉換爲其相應的數字,但在第一次轉換後停止。 如果我沒有在每個'case'後面使用'break',程序會繼續輸出下面這些不是我想要的情況。切換語句將單詞轉換爲數字? C++

開關(nameChar) { 情況下 'A':殼體 'B':殼體 'C': COUT < < 「1」; 休息;

這裏是我的代碼:http://paste.ofcode.org/37jbvdFKHHh3qCWTLavEEgF 我可以爲這個單詞的下列字母重複這個程序,直到這個單詞沒有更多的字母爲止嗎?

#include <iostream> 
#include<string> 
using namespace std; 

int main() { 

    char nameChar; 

    cout << "enter a name"; 
    cin >> nameChar; 

      switch (nameChar) 
     { 
      case 'a': case 'b': case 'c': 
       cout << "1"; 
       break; 
      case 'd': case 'e': case 'f': 
       cout << "2"; 
       break; 
      case 'g': case 'h': case 'i': 
       cout << "3"; 
       break; 
      case 'j': case 'k': case 'l': 
       cout << "4"; 
       break; 
      case 'm': case 'n': case 'o': 
       cout << "5"; 
       break; 
      case 'p': case 'q': case 'r': 
       cout << "6"; 
       break; 
      case 's': case 't': case 'u': 
       cout << "7"; 
       break; 
      case 'v': case 'w': case 'x': 
       cout << "8"; 
       break; 
      case 'y': case 'z': 
       cout << "9"; 
       break; 
      default: 
       return 0; 

       char nameChar; 

       cout << nameChar; 
     } 
    } 
+0

不要再聲明nameChar。你要求一個新的未初始化的變量。 – philipxy

回答

1

你應該使用類似這裏面主要:

string name; 
cout << "enter a name"; 
cin >> name; 
for (auto letter : name) { 
    switch (letter) { 
     //rest of your case 
    } 
} 

因爲char意味着只存儲一個字母,string是您要使用整個字符串的類。

+0

這工作!謝謝。 – Hugo

+0

我很高興我能幫你。您可以通過點擊我答案旁邊的「複選標記」關閉此主題,我會很感激。 – ppsz

+0

如果我不希望程序在用戶在輸入中包含數字時停止,那該怎麼辦?而只是顯示包括數字在內的切換字母輸出。 – Hugo