我正在熟悉 C++,但不知道如何比较来自相同或不同字符串的索引字符。这是一个回文示例,它接受一个 int 并通过 stringstream 将其转换为一个字符串。
bool ispalindrome(int a) {
stringstream stream;
stream<<a;
string str = stream.str();
int length = str.length();
int offset = length - 1;
for (int i=0; i<=offset; i++ && offset--) {
if (str[i] == str[i + offset]) {
return false;
}
offset--;
}
return true;
}
出于某种原因,这总是被评估为 false。我不认为空终止与它有任何关系,因为它没有按长度报告,所以我想我一定是使用了错误的比较方法。我似乎找不到类似 strncmp 但只有单个字符的东西。
[编辑:固定标题]
最佳答案
我不知道你是怎么写那个循环的,但我很确定它应该是
for (int i=0; i<=offset; i++, offset--) {
if (str[i] != str[offset]) {
return false;
}
}
关于字符串比较中的C++字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11619608/