我用C语言编了一个初始化汉字并搜索的程序,可是当输入某些汉字时结果显示不正确,请帮忙分析下

[复制链接]
查看11 | 回复5 | 2013-1-6 14:43:57 | 显示全部楼层 |阅读模式
#includevoid main(){ chara[]="你是编程高手";char b[2]; int i,j,k; printf("请输入你要查找的字:\n"); scanf("%s",&b); for(i=0;i=0&&k<=11) printf("您要找的汉字已找到!\n");else printf("您要找的汉字没有找到!\n");}...
回复

使用道具 举报

千问 | 2013-1-6 14:43:57 | 显示全部楼层
汉字要判断两次,占两个字符,都要相等,你试试 额,这样试试 for(i=0;i<6;i+=2){
if(a==b[0] && a[i+1]==b[1])
{
k=1;
}}if(k==1)
printf("\n你要的汉字已经找到");else
print...
回复

使用道具 举报

千问 | 2013-1-6 14:43:57 | 显示全部楼层
if(b[j]==a) k=i;汉字占两个字节。你这样比较,始终没有结果。当循环结束,k总是=i=5。正好满足你的条件。所以不管你输入什么,总是显示汉字已找到。...
回复

使用道具 举报

千问 | 2013-1-6 14:43:57 | 显示全部楼层
i变量和j变量不要加1递增,而是要加2递增,汉字是有2个字符组成的,否则前一汉字的后半个和后一汉字的前半个会组成你输入的“郑”字,系统会错误地判断搜索到了。if(b[j]==a) 还要改为 if(b[j]==a && b[j+1]=a[j+1])...
回复

使用道具 举报

千问 | 2013-1-6 14:43:57 | 显示全部楼层
chara[50]={'你','是','编','程','高','手'};这里弄成2维数组试试,char a[][]={{"你"},{"是"},{"编"},{"程"},{"高"},{"手"}};...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行