strncmp函数与strcmp函数相似,不过它是比较两个字符串的前n个字符,它比较结束的标志是比较出来前n个字符的不同或者直到’\0’为止,具体实现代码如下:
#include<stdio.h>
#include<assert.h>
int strncmp(const char *str1, const char *str2, size_t num)
{
assert((*str1 != NULL) && (*str2 != NULL));
while (num && *str1 && *str2)
{
if (*str1 > *str2)
{
return 1;
}
if (*str1 < *str2)
{
return -1;
}
num--;
str1++;
str2++;
}
return 0;
}
int main()
{
char *str1 = "abcdkfg";
char *str2 = "abcdejk";
int num = 0;
scanf("%d", &num);
int ret = strncmp(str1, str2, num);
printf("%d\n", ret);
system("pause");
return 0;
}