strcmp()是一个内置库函数,并在< 字符串.h>头文件中声明。此函数将两个字符串作为参数,然后按字典顺序比较这两个字符串。
语法::
int strcmp(const char *leftStr, const char *rightStr );
在上述原型中,函数srtcmp将两个字符串作为参数,并根据字符串的比较返回一个整数值。
- 的strcmp()的两个字符串字典顺序比较意味着它由字符从第一个字符开始,直到在两个字符串的字符是等于或遇到NULL字符开始比较字符。
- 如果两个字符串中的第一个字符相等,则此函数将检查第二个字符,如果也相等,则将检查第三个字符,依此类推
- 这一过程将继续,直到字符串中的字符为NULL或字符是不平等的。
strcmp()返回什么?
该函数可以根据比较结果返回三个不同的整数值:
- 零(0) :当发现两个字符串相同时,该值等于零。即,也就是说,两个字符串中的所有字符都相同。
All characters of strings are same
// C program to illustrate // strcmp() function #include
#include 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
#include 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
- 小于零(<0) :当leftStr中的第一个不匹配字符的ASCII值小于rightStr中的相应字符时,返回小于零的值。
If character in leftStr is lexicographically before the character of rightStr
// C program to illustrate // strcmp() function #include
#include 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
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。