!strncmp(……)是什么意思?为什么有个感叹号

img

strcmp比较字符串,如果相等返回0,!表示取反,即不相等。

strncmp函数为字符串比较函数,字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。其函数声明为int strncmp ( const char * str1, const char * str2, size_t n );功能是把 str1 和 str2 进行比较,最多比较前 n 个字节,若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 小于s2,则返回小于0的值。
strncmp(……)表示只有两个字符串前len个字符都相等时才会为0,! 表示取反,!0表示真,会进入if语句

取反的意思
解释:
strncmp是一个函数名,这个函数用来比较s1和s2字符串,这个函数将返回一个值, 它的符号与第一对不同的字符的比较结果相关。 如果两个字符串相等的话,strcnmp将返回0