c语言中模拟实现strcmp

这个代码哪里有问题啊为什么不能正常输出return呢


#include <stdio.h>
int my_strcmp(const char* str1,const char* str2)
{
    // if the characters currently being compared are equal
    int ret;
    while (*str1 == *str2)
    {

        if (*str1 == '\0'&&*str2 == '\0')
        {
            return 0;
        }
        str1++;
        str2++;
    }
    if (*str1 > *str2)
    {
        ret=1;
    }
    else
    {
        ret=-1;
    }
int main()
{
    const char *str1="abcd";
    const char *str2="dcba";
    const char *str3="abc";
    int ret = my_strcmp(str1,str1);
    printf("%d\n",ret);
    ret = my_strcmp(str1,str2);
    printf("%d\n",ret);
    ret = my_strcmp(str1,str3);
    printf("%d\n",ret);

}
}

大括号的位置错了

#include <stdio.h>
#include <stdlib.h>
int my_strcmp(const char* str1,const char* str2)
{
    // if the characters currently being compared are equal
    while (*str1 == *str2)
    {
 
        if (*str1 == '\0')//*str1和*str2都为'\0'时
        {
            return 0;
        }
        str1++;
        str2++;
    }
    if (*str1 > *str2)
    {
        return 1;
    }
    else
    {
        return -1;
    }
}
int main()
{
    const char *str1="abcd";
    const char *str2="dcba";
    const char *str3="abc";
    int ret = my_strcmp(str1,str1);
    printf("%d\n",ret);
    ret = my_strcmp(str1,str2);
    printf("%d\n",ret);
    ret = my_strcmp(str1,str3);
    printf("%d\n",ret);
 
}

37行的大括号,放到25行