首页 新闻 搜索 专区 学院

C语言怎么判断输入的汉字正不正确

0
悬赏园豆:5 [已解决问题] 解决于 2018-01-08 17:02

总是判断错误,但不知到原因,希望有会的大神给修改一下,并说明原因,谢谢

#include<stdio.h>
#include <locale.h>

int main()
{
setlocale(LC_ALL, "chs");
printf("输入“你好”");
wchar_t wc;
wscanf(L"%c",&wc);
if(wc=="你好")
printf("正确");
else
printf("错误");
}
怡红公子0526的主页 怡红公子0526 | 初学一级 | 园豆:199
提问于:2018-01-08 16:27
< >
分享
最佳答案
1

==是比较的指针地址,字符串比较用strcmp函数,原型

extern int strcmp(const char *s1,const char *s2);
当s1<s2时,返回为负数;
当s1==s2时,返回值= 0;
当s1>s2时,返回正数。
收获园豆:5
浴子风 | 小虾三级 |园豆:521 | 2018-01-08 16:31

那我应该怎么改啊,这个没用过

怡红公子0526 | 园豆:199 (初学一级) | 2018-01-08 16:33

@怡红公子0526: 

大致这样就可以:

if(strcmp(wc,"你好")==0)
浴子风 | 园豆:521 (小虾三级) | 2018-01-08 16:38

@浴子风: 不可以,已停止工作,卡死,其他程序正常,环境没问题

怡红公子0526 | 园豆:199 (初学一级) | 2018-01-08 16:43

@怡红公子0526: 我这没有C++的环境,我等会试试,应该没问题的

浴子风 | 园豆:521 (小虾三级) | 2018-01-08 16:48

@浴子风: 嗯嗯,谢谢了

怡红公子0526 | 园豆:199 (初学一级) | 2018-01-08 16:49

@浴子风: 

我自己改好了,最终代码:

#include<stdio.h>

int main()
{
char string[255];
char* str = "你好";
printf("输入“你好”:");
scanf("%s", string);
if (strcmp(str, string)==0)
{
printf("正确");
}
else
{
printf("错误");
}
}

给你结帖啊

怡红公子0526 | 园豆:199 (初学一级) | 2018-01-08 17:01

@怡红公子0526: 好的,解决了就好。

浴子风 | 园豆:521 (小虾三级) | 2018-01-08 17:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册