int strcmp(const char* str1, const char* str2);
返回值:(vs编辑器返回1,-1,0)(gcc,返回两字符的差值)
str1 大于 str2 时,返回一个大于0的数;
str1 小于 str2 时,返回一个小于0的数;
str1 等于 str2 时,返回一个等于0的数;
#include<stdio.h>
#include<string.h>
#include<assert.h>
int my_strcmp(const char* str1, const char* str2){
assert(str1 && str2);//断言
//比较
while(*str1++ == *str2++){
if(*str1 == '\0')
return 0;
}
if(*str1 > *str2 )
return 1;
else
return -1;
// return (*str1 - *str2); 返回两个字符串的差值;
}
int main(){
char p1[] = "abcdef";
char p2[] = "abcdhe";
int ret = my_strcmp(p1,p2);
if(ret > 0)
printf("%s> %s \n",p1,p2);
else if(ret < 0)
printf("%s < %s \n",p1,p2);
else
printf("%s == %s \n",p1,p2);
return 0;
}