#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是用于窄字符的,不能应用于中文