strcmp()是内置库函数,并在头文件中声明。此函数将两个字符串作为参数,然后按字典顺序比较这两个字符串。
用法::
int strcmp(const char *leftStr, const char *rightStr );
在上述原型中,函数srtcmp将两个字符串作为参数,并根据字符串的比较返回一个整数值。
- strcmp()从字法上比较两个字符串,这意味着它从第一个字符开始逐个字符开始比较,直到两个字符串中的字符相等或遇到NULL为止。
- 如果两个字符串中的第一个字符相等,则此函数将检查第二个字符,如果也相等,则将检查第三个字符,依此类推
- 该过程将继续进行,直到任一字符串中的字符为NULL或字符不相等为止。
What does strcmp() return?
该函数可以基于比较返回三个不同的整数值:
- 零(0):当发现两个字符串相同时,该值等于零。也就是说,两个字符串中的所有字符都相同。
All characters of strings are same
// C program to illustrate // strcmp() function #include<stdio.h> #include<string.h> int main() { char leftStr[] = "g f g"; char rightStr[] = "g f g"; // Using strcmp() int res = strcmp(leftStr, rightStr); if (res==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d" , res); return 0; }
输出:
Strings are equal Value returned by strcmp() is: 0
- 大于零(> 0):当leftStr中第一个不匹配的字符的ASCII值大于rightStr中相应字符的ASCII值时,返回大于零的值,或者我们也可以说
If character in leftStr is lexicographically after the character of rightStr
// C program to illustrate // strcmp() function #include<stdio.h> #include<string.h> int main() { // z has greater ASCII value than g char leftStr[] = "zfz"; char rightStr[] = "gfg"; int res = strcmp(leftStr, rightStr); if (res==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue of result:%d" , res); return 0; }
输出:
Strings are unequal Value returned by strcmp() is: 19
- 小于零(:当leftStr中的第一个不匹配字符的ASCII值小于rightStr中的相应字符时,返回小于零的值。
If character in leftStr is lexicographically before the character of rightStr
// C program to illustrate // strcmp() function #include<stdio.h> #include<string.h> int main() { // b has less ASCII value than g char leftStr[] = "bfb"; char rightStr[] = "gfg"; int res = strcmp(leftStr, rightStr); if (res==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d" , res); return 0; }
输出:
Strings are unequal Value returned by strcmp() is: -5
相关用法
注:本文由纯净天空筛选整理自 strcmp() in C/C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。