如何简单地比较 C++ 中的字符?

Posted

技术标签:

【中文标题】如何简单地比较 C++ 中的字符?【英文标题】:How do I simply compare characters in C++? 【发布时间】:2013-03-25 23:23:12 【问题描述】:

我有以下代码:

#include <iostream>
using namespace std;
int main()

    char fg;
    cin>>fg;
    char x[20];
    x[0]='0';
    if(fg=x[0])
    
        cout<<"It's true!"<<endl;
        return true;

    
    cout<<"It's false!"<<endl;
    return false;

无论我输入什么,true 总是会返回。我的语法关闭了吗?任何帮助,将不胜感激。

【问题讨论】:

啊,我遇到过这个错误的次数。在 if 中尝试 == 而不是 =。只要 x[0] 的计算结果为真,简单的赋值就会为真。 你试过调试吗? @CaptainMurphy,评估为真意味着评估为非 0。 【参考方案1】:

在 if 语句中使用==。例如:

if (fg == x[0]) 
    //...........   

== 比较,但 = 使 fg 等于 x[0],这就是为什么你每次都为真。

【讨论】:

【参考方案2】:

在 C++ 中,您使用 == 进行比较。 = 是一个作业。它可以在if 语句的条件下使用,但除非字符是'\0'(不是'0',在您的情况下),否则它将评估为true

if(fg == x[0])

    ...

【讨论】:

我添加了第二个 =,但现在即使我输入 0,它也总是返回 false。感谢大家迄今为止的所有帮助。 @DmitriyPotemkin Stack Overflow 允许您删除不再适用的 cmets。指向评论,然后点击旁边的小十字。

以上是关于如何简单地比较 C++ 中的字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何比较参数字符串 Visual C++

如何在 C++ 中逐个元素地比较两个向量的相等性?

如何从 C++ 中的 getline 函数中提取特定的子字符串?

如何在 C++ 程序中的 2 个特定字符之间比较 2 个文件中的文本行

C++ - 如何有效地找出向量中的任何字符串是不是可以由一组字母组合而成

python、c++、c#、java中字符串比较的区别