私は C++ Primer 第 5 版を使って独学で 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」と「」を見つけることです。
事前にご協力いただきありがとうございます。