请问C++中 if(!strcmp(A,B)) 中的!strcmp代表什么意思

2025-05-23 10:44:00
推荐回答(4个)
回答1:

strcmp(s1,s2)为字符串比较函数,比较的是从字符串的第一个字符开始比较他的ASCLL码值,跟字符串的长度无关。

当s1 > s2 时,返回值 > 0

当s1 = s2 时,返回值 = 0

当s1 < s2时,返回值 < 0

! 为逻辑非运算符,即当值为真时改成假,值为加时改成真

在程序设计的判断真假中0为假,非0为真

扩展资料:

strcmp规则

两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:

1."A"<"B" 2."A"<"AB" 3."Apple"<"Banana" 4."A"<"a" 5."compare"<"computer"

特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。

参考资料来源:百度百科-strcmp

回答2:

strcmp(s1,s2)为字符串比较函数,比较的是从字符串的第一个字符开始比较他的ASCLL码值,跟字符串的长度无关。
当s1 > s2 时,返回值 > 0
当s1 = s2 时,返回值 = 0
当s1 < s2时,返回值 < 0

! 为逻辑非运算符,即当值为真时改成假,值为加时改成真

在程序设计的判断真假中0为假,非0为真

所以在if(!srcmp(A,B))这个语句中我们可以将A和B的关系设为两种,一种是A==B,另一种是A!=B
当A==B时:strcmp(A,B)为0,!strcmp(A,B)为非0
if判断为真
当A!=B时:strcmp(A,B)为非0,!strcmp(A,B)为0
if判断为假

回答3:

strcmp是一个函数,表示字符串比较(字典序),该函数返回
<0 如果字符串A在B之前
=0 如果A和B相等
>0 如果A在B之后

if(!strcmp(A,B))等价于if(strcmp(A,B)==0),即若A,B两字符串相等。

希望这个答案对你有用

回答4:

! -- 逻辑非运算符。
strcmp(A,B) -- 字符串比较函数。当 A字符串和 B字符串 一样时,函数返回 0。
逻辑运算中,0为假,非0 为真。
!假 得真。!真 得假。

if(!strcmp(A,B)){。。。。}else{...};
当 A字符串和 B字符串 一样时 ,函数返回 0,也就是 假,!假 得真,
所以
当 A字符串和 B字符串 一样时, 执行 {。。。。},
不一样时 执行else{...};