我如何以这种方式计算字符串数组

How do I cout string array in this way

所以我决定检查这个词是否是回文。所以我做了 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() );