/实现strcmp/
//第一个字符串大于第二个字符串,则返回大于0的数字
//第一个字符串等于第二个字符串,则返回0
//第一个字符串小于第二个字符串,则返回小于0的数字
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
//strcmp函数
int Strcmp(const char* str1, const char* str2){
int Tag;
assert(str1 != NULL && str2 != NULL); //断言判定两个指针的指向不为空
while (*str1 != '\0' || *str2 != '\0'){ //若str1和str2指向的内容不为'\0'
Tag = *str1 - *str2; //将两字符的差值保存
if (Tag == 0){ //若两字符的差值为0
str1++; //str1向后移
str2++; //str2向后移
}
else if (Tag < 0){ //若两字符的差值小于0
return -1; //返回-1
}
else { //若两字符的差值大于0
return 1; //返回1
}
}
return 0; //返回0
}
//主函数
int main(){
char str1[] = "abcdeff";
char str2[] = "abcdef";
int ret = Strcmp(str1, str2); //接收函数调用返回值
printf("%d\n", ret); //打印输出结果
system("pause");
return 0;
}