为什么会输出结果不一样


#include <stdio.h>

int main() {
    char str1[100], str2[100];
    gets(str1);
    gets(str2);
    int i;
    for (i = 0; str1 != '\0'; i++) {
        if (str1[i] > str2[i]) {
            printf("%d\n", str1[i] - str2[i]);
            break;
        } else if (str1[i] < str2[i]) {
            printf("%d\n", str1[i] - str2[i]);
            break;
        } else {
            printf("0");
            break;
        }

    }
    return 0;
}

输入:like
like
输出:0

#include <stdio.h>

int main() {
    char str1[100], str2[100];
    gets(str1);
    gets(str2);
    int i, m = 0;
    for (i = 0; str1[i] != '\0'; i++) {
        if (str1[i] != str2[i]) {
            printf("%d", str1[i] - str2[i]);
            break;
        } else {
            printf("0");
        }


    }
    return 0;
}

输入:like
like
输出:0000

一个是比较首字母,输出0后就循环结束了;
第二个是依次比较每一位的字符,相同就输出0,所以输出4个0