字符串比较中的C++字符

标签 c++ string indexing comparison character

我正在熟悉 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/

相关文章:

c++ - 如何从类似函数调用具有可变数量参数的函数?

c++ - scanf C++ 中的段错误

string - 如何检查字符串是否包含 Bash 中的子字符串

java - 分割坐标从文件 Java 中读入

c++ - C++ 中任意长度字符串的 strtoull

c++ - 针对自定义构建的 tcl85.lib 的链接器错误,适用于 ActiveState 分发的 tcl85.lib

c++ - 为什么调用 std::async 后时间成本是 0 秒?

string - 如何使用 MATLAB 计算拼字游戏中的单词分数

python - Pandas 将函数应用于列组和索引

c++ - 将索引转换为迭代器