C语言 重写strcmp函数

Strcmp函数的重写,功能和strcmp差不多,主函数有对比

#include<stdio.h>
#include<string.h>
#include<stdbool.h>
typedef struct {
    char a[10];
    int lenght;
}string;
int Strcmp(string s1,string s2)
{
    bool equal=(s1.lenght==s2.lenght);
    int len=s1.lenght>s2.lenght?s2.lenght:s1.lenght;
    int i=0;
    for(;i<len;){
        if(s1.a[i]==s2.a[i])
            i++;
        else if(s1.a[i]>s2.a[i])
            return s1.a[i]-s2.a[i];
        else
            return s1.a[i]-s2.a[i];
    }
    if(i==len&&equal)
        return 0;
    else
        if(i<s1.lenght)
            return s1.a[i];
        else
            return s1.a[i]-s2.a[i];
}
int main(){
    string s1={"hello12",(int)strlen(s1.a)};
    string s2={"hello12",(int)strlen(s2.a)};
    printf("%d
",Strcmp(s1, s2));
    printf("%d
",strcmp(s1.a, s2.a));//对比
}
原文地址:https://www.cnblogs.com/oldfish123/p/13718647.html