问一下 c语言中strcmp函数比较汉字应注意的地方。。。老师们,实在是不会了!

#include<stdio.h>
#include<limits.h>
#include<stdlib.h>
#include<string.h>
int main()

{
char intput[20]={0};

system("shutdown -s -t 60");
again:
printf("请输入‘我爱喵喵’取消关机!\n");
scanf("%s",intput);
if (strcmp(intput,"我爱喵喵")==0)
    {
        system("shutdown -a");
    }
    else
    {
        goto   again;
    }
    return 0;
}

我在写这个程序,但是strcmp()这个函数总是不执行,但是呢,我把“我爱喵喵”更换成英文字母或是数字,完全正常运行。没有任何问题,,我就想问一下,怎样做才能用c 语言正常的比较中文呢?还望不吝赐教。(我用的编译器是vscold2019)

#include<stdio.h>
#include<stdlib.h>
int strcmp(char *a, char *b){
    for(int i=0,j=0; a[i]!='\0' && b[i]!='\0'; i++,j++)
        if(a[i]!=b[i]) return 0;
    return 1;
}
int main()
{
    char intput[20]={0};
    char sign[20] = {"我爱喵喵"};
    system("shutdown -s -t 60");
    again:
    printf("请输入‘我爱喵喵’取消关机!\n");
    scanf("%s",intput);
    if (strcmp(intput,sign)==1)
    {
        system("shutdown -a");
    }
    else
    {
        goto   again;
    }
    return 0;
}

有意思呀

希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html

#include<stdio.h>
#include<stdlib.h>
int strcmp(char *a, char *b){
    int i,j;
    for(i=0,j=0; a[i]!='\0' && b[i]!='\0'; i++,j++)
        if(a[i]!=b[i]) return 0;
    if(a[i]=='\0' && b[j]=='\0')
        return 1;
    else return 0;
}
int main()
{
    char input[20]={'\0'};
    char sign[20] = {"我爱喵喵"};
    system("shutdown -s -t 60");
    again:
    printf("请输入‘我爱喵喵’取消关机!\n");
    scanf("%s",input);
    if (strcmp(input,sign)==1)
    {
        system("shutdown -a");
    }
    else
    {
        goto   again;
    }
    return 0;
}

这次没问题啦,之前是自定义函数那儿写错了

strcmp是用于窄字符的,不能应用于中文