我正在通过 C++ Primer 5th edition 自学 C++。我在本书的第 5 章中遇到了一个我不知道如何使用他们迄今为止给我的工具来解决的问题。我有以前的编程经验,并且自己使用noskipws
. 我正在寻找有关如何以最少的库使用来解决此问题的帮助,想想初学者书籍的前 4-5 章。
问题是在使用 if 语句读取所有元音、空格、制表符和换行符时查找并计算它们。我对这个问题的解决方案是:
// Exercise 5.9
int main()
{
char c;
int aCount = 0;
int eCount = 0;
int iCount = 0;
int oCount = 0;
int uCount = 0;
int blankCount = 0;
int newLineCount = 0;
int tabCount = 0;
while (cin >> noskipws >> c)
{
if( c == 'a' || c == 'A')
aCount++;
else if( c == 'e' || c == 'E')
eCount++;
else if( c == 'i' || c == 'I')
iCount++;
else if( c == 'o' || c == 'O')
oCount++;
else if( c == 'u' || c == 'U')
uCount++;
else if(c == ' ')
blankCount++;
else if(c == '\t')
tabCount++;
else if(c == '\n')
newLineCount++;
}
cout << "The number of a's: " << aCount << endl;
cout << "The number of e's: " << eCount << endl;
cout << "The number of i's: " << iCount << endl;
cout << "The number of o's: " << oCount << endl;
cout << "The number of u's: " << uCount << endl;
cout << "The number of blanks: " << blankCount << endl;
cout << "The number of tabs: " << tabCount << endl;
cout << "The number of new lines: " << newLineCount << endl;
return 0;
}
我能想到解决这个问题的唯一另一种方法是使用 getline() 然后计算它循环的次数以获得“/n”计数,然后逐步遍历每个字符串以找到“/t”和“”。
提前感谢您的帮助。