strncmp函数 |
---|
int strncmp( const char *string1, const char *string2, size_t count ); |
string1, string2 为需要比较的两个字符串,count 为要比较的字符的数目。
字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strncmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,直到字符结束标志’\0’,若差值不为0,则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和’b’(98)的差值(-33)。注意:要比较的字符包括字符串结束标志’\0’,而且一旦遇到’\0’就结束比较,无论n是多少,不再继续比较后边的字符。
函数实现
int Mystrncmp(const char *str1, const char *str2, int n)
{
assert(str1 != NULL&&str2 != NULL);
while(n--&&*str1 == *str2)
{
str1++;
str2++;
}
return *str1 - *str2;
}
测试
int main()
{
char arr1[] = "accdefg";
char arr2[] = "abde";
printf("%d\n", Mystrncmp(arr1, arr2, 1));
system("pause");
return 0;
}