strcmp 和 if(!5)

原型:extern int strcmp(const char *s1,const char * s2);
所在头文件: string.h
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1<s2时,返回为负数 注意不是-1
当s1==s2时,返回值= 0
当s1>s2时,返回正数 注意不是1
即:两个 字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B" "a">"A" "computer">"compare"
特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
 

函数源码编辑

1
2
3
4
5
6
7
8
9
10
11
int strcmp ( const char *str1, const char *str2)
{
     while (*str1==*str2)
     {
         if (*str1== '\0' )
             return 0;
         str1++;
         str2++;
      }
      return *str1-*str2;
}

 

 

!5就是非5的意思,在编程语言中是二进制的,只有0或1,所以5也就是1,所以!5(非5)就是0。

if(!5)就是相当于if(0),就相当于if(false),也就是这个 if 后面的语句永远不会运行。

 

 

 

 

 

你可能感兴趣的:(if)