C/C++中strncmp()和strcmp()的区别
strncmp()
strncmp()函数用于比较两个字符串的前n个字符。其工作方式与strcmp()相同。如果左边字符串匹配字符的ASCII值大于右边字符串的匹配字符的ASCII值,则返回大于零的值。如果左边字符串匹配字符的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"头文件中。此函数用于比较字符串参数。它按字典顺序比较字符串,这意味着它逐个字符地比较两个字符串。它从字符串的第一个字符开始比较,直到两个字符串的字符相等或找到空字符。
如果两个字符串的第一个字符相等,则检查第二个字符,依此类推。这个过程将持续到找到空字符或两个字符不相等为止。如果两个字符串相同,即两个字符串中的字符都相同,则返回零。
如果左边字符串匹配字符的ASCII值大于右边字符串的匹配字符的ASCII值,则返回大于零的值。如果左边字符串匹配字符的ASCII值小于右边字符串的匹配字符的ASCII值,则返回小于零的值。
以下是C语言中strcmp()函数的语法:
int strcmp(const char *leftString, const char *rightString );
其中:
leftString − 要与右边字符串进行比较的第一个字符串。
rightString − 用于与第一个字符串进行比较的第二个字符串。
以下是一个C语言中strcmp()的示例:
示例
#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
广告