如何简单地比较 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++ 中的字符?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 C++ 中的 getline 函数中提取特定的子字符串?
如何在 C++ 程序中的 2 个特定字符之间比较 2 个文件中的文本行