我有一段C代码,我想在输入一些字符串时问“up”。
跳转到代码如下:(strcmp(pdirection,"up")==0)
那么,它是什么意思,我不明白==0
代码片段由参考位置调用。
答案 0 :(得分:3)
来自manual
int strcmp(const char *s1, const char *s2);
strcmp()和strncmp()函数返回一个小于的整数, 如果s1(或其前n个字节)是,则等于或大于零 发现分别小于,匹配或大于s2。
因此,如果两个字符串相等,则strcmp()
返回0
==
是等于运算符,它检查两边的值是否相等。让我们看看C标准的含义
<强> 6.5.9 强>
equality-expression == relational-expression
3 ==(等于)和!=(不等于)运算符类似于 关系运算符除了它们的优先级较低.108)每个 如果指定的关系为真,则运算符的结果为1,如果为,则为0 这是假的。结果是int类型。对于任何一对操作数, 其中一个关系是真的。
您的代码可能是
if( strcmp(pdirection,"up") == 0 )
do_something;
因此,如果pdirection
中存储的字符串等于"up"
,则函数strcmp()
将返回0,== 0
部分检查该值是否等于0,如果它等于0,则完成do_something
。
答案 1 :(得分:0)
strcmp(char *str1, char *str2)
返回2个字符串之间的差异。因此,如果2个字符串相等,则差值为0.
实际上,它一次扫描2个字符串一个字符,直到它达到2个不同的字符或传递一个字符串的结尾(C中字符串的最后一个字符是一个字符,其ASCII值为0,注明& #39; \ 0&#39;。)
该函数返回它在2个字符串之间遇到的第一个差异。