所以我决定检查这个词是否是回文。所以我做了2个字符串,我必须输入单词(例如"Hello"
)。我不明白如何比较这2个字符串,并且在将word.length
与变量i
一起使用时出现错误。我如何解决它?是否有必要更改代码,或者我只能更改我的内容?
string word,s;
cin>>word;
for(int i=word.length()-1;i>=0;i--){
s[i]=word[i];
}
if(s==word)
cout<<1;
最佳答案
实际上,不需要使用其他字符串来检查给定的字符串是否是回文。您可以循环执行这种检查。
但是,使用您的方法可以写得更简单。例如
if ( word == std::string( word.rbegin(), word.rend() ) ) std::cout << 1;
至于错误,您说的似乎是编译器不会像将带符号整数i与调用word.length *()返回的无符号整数值进行比较时一样。
此外,由于字符串s为空,因此您不能使用下标运算符
s[i]=word[i];
你可以写
s += word[i];
要么
s.push_back( word[i] );
初步,您可以为字符串s保留足够的内存,例如
s.reserve( word.size() );
关于c++ - 我如何以这种方式退出字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59290878/