私はいくつかのコードを書いていて、何か問題を抱えていました。私は、文字列に母音があるかどうかをチェックし、その内部のswitch文を使ってforループを実行しようとする関数を書いたかったのです。明らかに、それはうまくいかず、何らかの理由で真実を返すことはありません。文字列の繰り返しとswitch文:C++
プログラムが実際に文字列を反復していたかどうかをテストしたところ、関数内でなぜ常にfalseを返すのか理解できませんでしたか?
int main() {
string userInp;
string pigLatin;
cout << "Please enter a string to convert to pig Latin: " << endl;
cin >> userInp;
cout << endl;
// tests
for (int i = 0; i < userInp.size(); i++) { //checking if it actually iterates
cout << userInp[i];
}
cout << endl;
if (scanStr(userInp))
cout << "it has a vowel" << endl;
else
cout << "no vowel" << endl;
system("pause");
return 0;
}
は、最初に私はループが最後のケースの後にbreak文があったにもかかわらず、継続的に保たれているため、それがあったと思ったが、私はそれが理由であれば、完全にはわかりません。
アイデア?
コードが間違っています。あなたのために修正します – tomascapek
ループカウンタ 'i'は' std :: size_t'型でなければなりません。なぜなら、 'userInp.size()'は常に符号付き 'int'に収まるとは限らないからです。 – jotik
また、 'return true;'文の後の 'break;'文はデッドコードであり、決して実行されないことに注意してください。 – jotik