编写字符串比较函数,strmycmp(s,t),功能:比较字符串s,t的大小,返回比较结果。函数的返回值为两个串从左至右第一个不同字符相差的acsii码的值。如果都相同返回0。

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include <stdio.h>

int strmycat(char* s, char* t);

int main()
{
    char s1[201], s2[101];
    gets_s(s1);
    gets_s(s2);
    printf("%d", strmycat(s1, s2));
    return 0;
}
    int  strmycat(char* s, char* t)
    {
        int flag = 0;
        for (int i = 0; i < 201; i++)
        {
            if (t[i] == s[i])
                flag = 0;
            else {
               flag=(int)s[i]-(int)t[i];
                break;
            }
        }
        return flag;
    }



运行结果及报错内容

img

我的解答思路和尝试过的方法
  int  strmycat(char* s, char* t)
    {
        int a = sizeof(s), b = sizeof(t);
        int max = a;
        if (b > max)
            max = b;
        int flag = 0;
        for (int i = 0; i < max; i++)
        {
            if (t[i] == s[i])
                flag = 0;
            else {
               flag=(int)s[i]-(int)t[i];
                break;
            }
        }
        return flag;
    }

这样就是对的。为啥啊

我想要达到的结果
#include <stdio.h>
#include <string.h>
int strmycat(char* s, char* t);
int main() {
    char s1[201], s2[101];
    gets(s1);
    gets(s2);
    printf("%d", strmycat(s1, s2));
    return 0;
}
int  strmycat(char* s, char* t) {
    int a = strlen(s), b = strlen(t);
    int max = a;
    if (b > max)
        max = b;
    int flag = 0;
    for (int i = 0; i < max; i++) {
        if (t[i] == s[i])
            flag = 0;
        else {
            flag = (int)s[i] - (int)t[i];
            break;
        }
    }
    return flag;
}