#include <iostream>
using namespace std;
int main ()
{
char letter;
while (cin>>letter)
{
switch (letter)
{
case 'a':
cout<<"ant"<<endl;
break;
default :
cout <<"enter only lower cases letters "<<endl;
}
}
return 0;
}
c ++的任何功能是否忽略了第一个字符旁边的字符?因为,如果我输入aaa
它会显示ant ant ant
,所以我想摆脱这一部分。我希望你能得到我的问题。
答案 0 :(得分:4)
读取一个字符串,然后打开第一个字符。像这样。
int main () {
string word;
while (cin >> word) {
switch (word[0]) {
case 'a':
cout << "ant" << endl;
break;
default:
cout << "enter only lower cases letters " << endl;
break;
}
}
return 0;
}
答案 1 :(得分:1)
您可以将用户输入视为std::string
,然后只查看其中第一个字符作为switch语句。这将忽略用户在第一个字符后输入的任何内容。我无法想象这个用例,但我相信这就是你要求的。
#include <cstdlib>
#include <iostream>
int main( int argc, char *argv[] )
{
std::string word;
while (std::cin >> word)
{
char letter = word[0];
switch (letter)
{
case 'a':
std::cout << "ant" << std::endl;
break;
default:
std::cout << "please enter only lower case letters" << std::endl;
break;
}
}
return EXIT_SUCCESS;
}
答案 2 :(得分:0)
反复阅读字符并跟踪已添加的内容
#include <set>
int main () {
char letter;
std::set<char> used;
while (cin >> letter) {
if (!used.insert(letter)[1]) // note returns a pair; 2nd item ([1]) is true if it didn't exist before
continue;
switch (letter) {
case 'a':
cout << "ant" << endl;
break;
default:
cout << "enter only lower cases letters " << endl;
break;
}
}
return 0;
}
答案 3 :(得分:0)
只保存第一个字符
int main()
{
char c = 0;
c = getchar();
putchar(c);
return 0;
}