如何以这种方式处理字符串数组

How do I cout string array in this way

本文关键字:处理 字符串 数组 方式      更新时间:2023-10-16

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