int strncmp(const char* str1 , const char* str2, size_num);
比较到两个字符串不一样 或者 比较到其中一个字符串结束 或者 size_num个结束;
返回值:
当str1大于str2时,返回大于0的数;
当str1小于str2时,返回小于0的数;
当str1等于str2时,返回等于0的数;
#include<stdio.h>
#include<string.h>
#include<assert.h>
int my_strncmp(const char* str1, const char* str2, int num){
assert(str1 && str2); //断言
while(num--){
if(*str1++ == *str2++){
;
}
else{
if( (*str1 - *str2) > 0 || *str2 == '\0')
return 1;
else
return -1;
}
}
return 0;
}
int main(){
char arr1[] = "abcd";
char arr2[] = "abc";
int num = 0;
scanf("%d",&num);
int ret = my_strncmp(arr1,arr2,num);
if(ret > 0){
printf("比较前%d个中:%s > %s \n",num,arr1,arr2);
}
else if(ret < 0){
printf("比较前%d个中:%s < %s \n",num,arr1,arr2);
}
else{
printf("比较前%d个中:%s == %s \n",num,arr1,arr2);
}
return 0;
}