【问题标题】:How do I simply compare characters in C++?如何简单地比较 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。

标签: c++ char equals-operator


【解决方案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。指向评论,然后点击旁边的小十字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2021-06-11
    相关资源
    最近更新 更多