1. 函数的调用形式
int strncmp(char *str1, char *str2, int maxlen);
2.功能
比较字符串str1和str2的前maxlen个字符。
3.实现
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *s1 = "abcd";
char *s2 = "abcc";
printf("%d\n", strncmp(s1, s2, 4));
system("pause");
return 0;
}
4.模拟实现
#include<stdio.h>
#include<string.h>
#include<assert.h>
int my_strncmp(const char *str1, const char *str2, int maxlen)
{
assert(str1 != NULL);
assert(str2 != NULL);
int ret = 0;
while (!(ret = (*str1 - *str2)) && *str1 && (maxlen--))//如果两者相等且不为'\0',并且只能比较字符串str1和str2的前maxlen个字符
{
str1++;
str2++;
}
if (ret < 0)
ret = -1;
else if (ret>0)
ret = 1;
return ret;
}
int main()
{
char *s1 = "abcd";
char *s2 = "abcc";
printf("%d\n", my_strncmp(s1, s2, 4));
return 0;
}