strcmp是一个字符串比较函数,比较的是对应字符的ASCII值,因为软件的不同,输出的结果可能有所不同,我所用的软件当dest>src时,输出1;当dest<src时,输出-1;当dest==src时,输出0;就此结果,来进行实现此函数。
int my_strcmp(char* str1, char* str2){
assert(str1);
assert(str2);
while (*str1 == *str2){
if(*str1 == '0')
return 0;
str1++;
str2++;
}
if (*str1 > *str2)
return 1;
else
return -1;
}
int main(){
char* p = "abcdef";
char* q = "abcdef";
printf("%d",my_strcmp(p,q));
system("pause");
return 0;
}
strncmp是给一个数值,限定这两个字符串能比较几个字符,输出的模式和strcmp是一样的。
int my_strncmp(const char* dest, const char* src,size_t count){
assert(dest);
assert(src);
while (count--){
if (*dest == *src && count == 0){
return 0;
}
else if (*dest > *src){
return 1;
}
else if (*dest < *src){
return -1;
}
else if (*dest == *src && count>0){
dest++;
src++;
}
}
return 0;
}
int main(){
char* p = "acc";
char* q = "adcdef";
printf("%d",my_strncmp(p, q, 3));
system("pause");
return 0;
}
如果大家发现哪里有错误,希望大家能帮我指出。