判断字符串中是否有中文字符 c++

从内容为ab├na├├sb中├华├啊ajhks├的文件中读取到数组a[100],并判断读取a[i]=='├';假如是则输出RIGHT,不是则ERROR。#include<... 从内容为ab├na├├sb中├华├啊ajhks├的文件中读取到数组a[100] ,并判断读取a[i]=='├';假如是 则输出RIGHT,不是则ERROR。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <iostream>
//using namespace std;
int main()
{
FILE *fp1;
char a[100];
int i=0;
char in_name[30];
printf("输入将读入的文件名\n");
gets(in_name);/*得到要的文件名 */
fp1=fopen(in_name,"r");
if(fp1==NULL)
{
printf("can not open in_name\n");
exit(1);
}
while(!feof(fp1))
{
a[i]=fgetc(fp1);
i++;
fclose(fp1);
a[i-1]='\0';
// a[0]='│';
// if(a[0]=='│')printf("sjj\n");

for(int j=0;j<i;j++)
{
if(a[j] > 160)
if(a[j]=='├')
printf("sjj\n");
}
printf("%s",a);
return 0;
}
}
这个是我写的一段程序 不过就是读入的时候都是单字节的,请各位大大给我个能直接读入中文字符的函数, 像读完后a[1]里就放以个中文字符‘中’;
2楼的宽字符串如何使用啊 能不能给我个例子要求带输入输出还有字符间比较的!!谢了 还有虽然4楼方法完全可行,但我急需字符间比较的方法!
展开
 我来答
緗虞帱
2010-03-19 · TA获得超过578个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:345万
展开全部
#include <iostream>
using namespace std;
int main()
{
char a[10]="C程序设计";
int b=0;
for(int i=0;i<=strlen(a);i++)
{b=a[i];printf("%d ",b);}
return 0;
}
汉字的编码要占两个字符,而且每个字符均为负值,而英文字符为非负值。如上例所示。
根据这一性质就可以用来甄别是否为汉字了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wellia0926
2010-03-19 · TA获得超过293个赞
知道小有建树答主
回答量:497
采纳率:0%
帮助的人:0
展开全部
这个是不可能的,中文字符就是要占两个CHAR位。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Worldwill
推荐于2016-05-02 · TA获得超过357个赞
知道小有建树答主
回答量:219
采纳率:0%
帮助的人:168万
展开全部
单字符也是可以判断的,因为中文的两个字符都是负数
下面是一个测试,你可以根据你的需要改写:
#include <stdio.h>
void main()
{
char name[]="姓-名只能*+用=├中7文";
char tmep[3]="";
char *Name = name;
while(*Name!='\0')
{
if((int)*Name>0)
printf("%c 非中文\n", *Name);
else
{
tmep[0] = *Name;
Name++;
tmep[1] = *Name;
printf("%s 中文\n", tmep);
}
Name++;
}
}
也可以将“├”当作字符串来处理,这样就成了查找字符串的问题。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mangshe0
2010-03-19 · 超过18用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:41.7万
展开全部
定义成宽字符串 wchar
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式