判断s1与s2是否相等,为什么是if(!strcmp(s1,s2))

如题所述

首先题主要搞清楚s1,s2是什么类型。从表述来看s1和s2应该是c语言里的字符串,字符串在c里被实现为字符数组加字符‘\0’。楼主的意思是不想问为什么不能用"s1==s2"判断?这是因为作为数组类型,"s1==s2"的含义是数组首地址是否相同,而不是判断字串内容。而strcmp函数会逐个检查两个字串中的元素是否相同,判断的是内容的相等。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-14
strcmp函数是比较两个字符串大小,也就是求差值,如果相等,差值为0,那么再加上!就是真
反之,如果不等,差值为正或负,取非为假本回答被提问者采纳
第2个回答  推荐于2018-03-14
: strcmp函数是比较两个字符串大小,也就是求差值,如果相等,差值为0,那么再加上!就是真反之,如果不等,差值为正或负,取非为假本回答被网友采纳
第3个回答  2012-12-14
strcmp(s1,s2)

这个函数的话,S1>S2时返回大于0的数,S1=S2时返回0,S1<S2时返回小于0的数。
而 !0 = 1 , !n = 0 (n≠0)
不知这样你清楚了没有。

至于S1 与 S2的具体比较问题,你可以查看strcmp函数
第4个回答  2012-12-14
这个是封装的方法,比较2个字符串内的字符是不是一样,如果一样返回true,否则返回false

判断s1与s2是否相等,为什么是if(!strcmp(s1,s2))
这是因为作为数组类型,"s1==s2"的含义是数组首地址是否相同,而不是判断字串内容。而strcmp函数会逐个检查两个字串中的元素是否相同,判断的是内容的相等。

if(! strcmp(s1,s2))是什么意思?
strcmp()是字符串比较函数。!strcmp(s1.s2)的意思是字符串s1和s2不相等。整个表达式的意思就是,如果字符串s1和s2不相等,则。。。

为了判断两个字符串s1和s2是否相等,应当使用
if(strcmp(s1,s2)==0) 。cmp是compare的缩写,比较的意思,==0表示两个字符串相等。strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值。比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右...

请问C++中 if(!strcmp(A,B)) 中的!strcmp代表什么意思
strcmp(s1,s2)为字符串比较函数,比较的是从字符串的第一个字符开始比较他的ASCLL码值,跟字符串的长度无关。当s1 > s2 时,返回值 > 0 当s1 = s2 时,返回值 = 0 当s1 < s2时,返回值 < 0 ! 为逻辑非运算符,即当值为真时改成假,值为加时改成真 在程序设计的判断真假中0为假,...

...字符串s1和s2是否相等,应当使用___ A、if(s1==s2) B、
D

...使用( )。 A. if (sl>s2) B. if (strcmp(s1,s2)) C. if (strcmp(s...
答案是if(strcmp(s1,s2))strcmp()函数简介 原型:extern int strcmp(const char *s1,const char * s2);用法:#include <string.h> 功能:比较字符串s1和s2。说明:当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0 即:两个字符串自左向右逐个字符相比(按ASCII值大小相...

关于strcmp的问题
一般形式:strcmp(s1,s2)说明:当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0 即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\\0'为止。首先 b的ASCII码值为98 明显小于s的ASCII码值115输出值是小于0的 这个 printf("s=%d,b=...

如何利用strcmp函数比较两个字符串是否相同
函数原型:extern int strcmp(const char *s1,const char *s2);参数: s1、s2都是字符数组的指针 规则 当s1<s2时,返回为负数 当s1=s2时,返回值= 0 当s1>s2时,返回正数 即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\\0'为止。例程:include <stdio...

C语言中怎么判断两个字符串是相同的.
说明:当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0 举例:\/\/ strcmp.c include <syslib.h> include <string.h> main(){ char *s1="Hello, Programmers!";char *s2="Hello, programmers!";int r;clrscr();r=strcmp(s1,s2);if(!r)printf("s1 and s2 are ...

c语言字符
对于字符串的比较,情况略有不同。例如,如果字符串s1为"abc",s2为"xyz",可以借助`strcmp`函数来判断它们是否相等,`if(strcmp(s1, s2) == 0) printf("%s is same as %s.", s1, s2);`在处理大小写敏感性时,可以使用`stricmp`函数,它会忽略大小写进行比较。比如,`stricmp(s1, s2)`...

相似回答