以下は、逆引き操作を実装する回文関数とヘルパー関数です。何らかの理由で、型が同じであるように見えても、if比較ステートメントは決してtrueに評価されません。変数sとcompの両方が文字列であるように見えますが、私はsti()を両方ともintに変換しようとしましたが、何らかの理由でcompがエラーをスローします:文字列の反転後の文字列比較関数の問題
std :: invalid_argument ' what():stoi 中止(コアダンプ)
問題の内容がわかりません。
bool palindrome (int n)
{
string s = to_string(n);
cout << s << endl;
string comp = rev(s);
cout << comp << endl;
if (s == comp)
{
cout << s << " " << comp << endl;
return 1;
}
return 0;
}
string rev (string &s)
{
string return_string("");
for (string::iterator it = s.end(); it != (s.begin() - 1); it--)
{
return_string += *it;
}
return return_string;
}
はしましたか? – OldProgrammer
@LogicStuff:これは完全に動作します。逆の文字列を新しい文字列にコピーします。 – Isthisathing
私はあなたが['std :: string :: rbegin'](http://www.cplusplus.com/reference/string/string/rbegin/)を見てみることをお勧めします – lcs