2016-03-04 4 views
0

Прямо сейчас я смог создать программу, которая только преобразует первую букву слова в соответствующую цифру, но останавливается после первого преобразования. Если я не использую «разрыв» после каждого «случая», программа просто продолжает выводить следующие случаи, которые не то, что я хочу.Выключить инструкцию для преобразования слова в цифру? C++

переключатель (nameChar) { случай 'а': случай 'б': случай, 'с': соиЬ < < "1"; break;

Это мой код: 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