现在我能够制作一个程序,只将一个单词的第一个字母转换成相应的数字但在第一次转换后停止。如果我在每个'case'之后没有使用'break',程序就会继续输出以下不是我想要的情况。
switch(nameChar){case'a':case'b':case'c':cout <<“1”;打破;
我可以为这个单词的下一个字母重复这个程序,直到单词中没有更多的字母吗?
#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;
}
}
你应该在main里面使用这样的东西:
string name;
cout << "enter a name";
cin >> name;
for (auto letter : name) {
switch (letter) {
//rest of your case
}
}
因为char
只能存储一个字母,所以string
是一个你想用于整个字符串的类。