C/C++中strncmp()和strcmp()之间的区别
strncmp()
函数strncmp() 用于比较左字符串和右字符串的前n个字符。它的工作方式与strcmp() 相同。当左字符串的匹配字符的ASCII值大于右字符串的字符时,它返回大于零的值。当左字符串的匹配字符的ASCII值小于右字符串的字符时,它返回小于零的值。
下面是C语言中strncmp()的语法
int strncmp ( const char *leftString, const char *rightString, size_t number );
这里,
- leftString − 第一个与右字符串进行比较的字符串。
- rightString − 用于比较第一个字符串的第二个字符串。
- number − 最大要比较的字符数。
这是C语言中 strncmp()的一个示例,
示例
#include<stdio.h>
#include<string.h>
int main() {
char str1[] = "blank";
char str2[] = "Hello World!";
int result = strncmp(str1, str2, 1);
if (result==0)
printf("Strings are equal");
else
printf("Strings are unequal");
printf("\nValue returned by strcmp() is: %d" , result);
return 0;
}
输出
这是输出结果
Strings are unequal
Value returned by strcmp() is: 26
strcmp()
函数strcmp() 是一个内置库函数,声明在 “string.h” 头文件中 . 这个函数用于比较字符串参数。它以字典顺序比较字符串,也就是逐个字符比较两个字符串。它从字符串的第一个字符开始比较,直到找到相等的字符或者找到NULL字符为止。
如果两个字符串的第一个字符相等,它就会检查第二个字符,依此类推。这个过程会一直持续下去,直到找到NULL字符或者找到两个不相等的字符。如果两个字符串完全相同,即两个字符串的字符相同,它会返回零。
如果左字符串的匹配字符的ASCII值大于右字符串的字符,则它会返回大于零的值。如果左字符串的匹配字符的ASCII值小于右字符串的字符,则它会返回小于零的值。
这里是C语言中strcmp()的语法。
int strcmp(const char *leftString, const char *rightString );
这里,
- leftString - 第一个要与右边的字符串进行比较的字符串。
-
rightString - 用于比较第一个字符串的第二个字符串。
在C语言中的示例
示例
#include<stdio.h>
#include<string.h>
int main() {
char str1[] = "hello World!";
char str2[] = "Hello World!";
int result = strcmp(str1, str2);
if (result==0)
printf("Strings are equal");
else
printf("Strings are unequal");
printf("\nValue returned by strcmp() is: %d" , result);
return 0;
}
输出
这是输出结果:
Strings are unequal
Value returned by strcmp() is: 32