字符串回文在String.size()上给出错误答案,但在String.seize()-1上给出正确答案
String palindrom giving wrong answer on string.size() but right answer on string.size()-1
这是一个程序,它可以找到用户输入的字符串的反面,并判断它是否是回文。。。。现在的问题是,当我用size((-1初始化for循环时,它正确地反转了字符串……但当我用size((初始化时,它错过了一个字符。为什么会这样?
//palindromee
#include <iostream>
using namespace std;
int main()
{
string s;
string s1;
cout<<"Enter something: ";
cin>>s;
s1.assign(s);
int k=0;
for(int i = s.size()-1 ; i>=0 ; i--)
//why correct ans reversing on size()-1?
{ // and wrong ans on size()
s1[k]=s[i];
k++;
}
cout<<"string s= "<<s;
cout<<"nstring s1= "<<s1<<'n';
int checker=s.compare(s1);
if(checker == 0)
{
cout<<"nnpalindrome";
}
else cout<<"n NOT A PALINDROME";
return 0;
}
这是因为在c&c++数组索引是基于0的。字符串类也是如此,其中使用[]运算符访问单个字符的索引是基于0的。数组的长度(或字符串的大小(总是在其边界之外。
相关文章:
- 欧拉项目#8答案是大以获得有效答案
- 首要问题的答案让值班员搞错了
- cppcheck在const std::string[]上引发警告
- 将std::string传递给WriteConsole API
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 为std::string的某个索引赋值
- std中有类似find_last_of的函数,而string中没有
- 使用 std::string () const 函数启动线程或未来
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 使用char类型将decimal转换为string,将string转换为decimal
- 迭代和比较映射<字符串、矢量<string>> c++ 中的值
- 当我们进行一些操作时,应该使用什么'std::string'或'std::stringstream'?
- 使用 bfs 解决连接组件问题时得到错误的答案
- 将向量解析<string>为字符串
- 'string.assign(string.data(), 5)' 是明确定义的还是 UB?
- 同一对象的"sizeof"的不同答案
- 如何更改大小(std::string)
- "string.h"在构建适用于iOS的qt应用程序中找不到消息
- std::string::find 返回错误的答案
- 字符串回文在String.size()上给出错误答案,但在String.seize()-1上给出正确答案