CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

怎么判断是否是中文字符?在先等

楼主gk0205(沉默是金)2002-04-03 15:55:21 在 C/C++ / C语言 提问

比如在一个字符串"jdal啊da"一个一个字符的读,怎么判断  
  是否是中文字符???? 问题点数:100、回复次数:12Top

1 楼stonesky(流星雨)回复于 2002-04-03 16:00:11 得分 0

从头向后  
  如果某字节最高位为1,为中文共占两个字节Top

2 楼gk0205(沉默是金)回复于 2002-04-03 16:02:10 得分 0

能给段代码看看吗?楼上的同志Top

3 楼hse1018(一)回复于 2002-04-03 16:14:53 得分 30

一个汉字占用两个字节,每个字节的最高未必为1。  
  char   *str;  
  int   i;  
  ....  
   
  for(i=0;i++;i<=strlen(str))  
      if(str[i]&0x80)  
      //可能是汉字,也可能是特殊制表符  
          if(i<strlen(str))&&(strlen(str+1)&0x80)  
            //是汉字  
            .........    
   
  Top

4 楼Nepton(小牛牛) :-)回复于 2002-04-03 16:16:49 得分 0

使用unicode编码,不管中文,还是英文,都是占两个字符,haha   太好用了!Top

5 楼gigix(透明)回复于 2002-04-03 16:29:23 得分 0

汉字的编码是大于127的。Top

6 楼gk0205(沉默是金)回复于 2002-04-03 16:37:33 得分 0

if(i<strlen(str))&&(strlen(str+1)&0x80)   //解释一下      
  请把这行写完整好吗?100分奉上  
  Top

7 楼yie_lang(非李)回复于 2002-04-03 17:26:01 得分 70

首先,汉字是双字节的编码格式!  
  汉字的第一字节:是从0xB0   开始编码  
  汉字的第二字节:是从0xA1   开始编码  
  有了以上的了解,就不难识别出是中文,还是其他的编码!  
  程序中只需要判断(   第一字节>0xB0   &&   第二字节>0xA1   )就好!  
  以上在中文操作系统win   98/me/2000/xp   上调试成功  
   
  以上是个人意见仅供参考,如有错误请各位指正!  
  Top

8 楼yie_lang(非李)回复于 2002-04-03 17:29:27 得分 0

修正:  
  程序中只需要判断(   第一字节>0xB0   &&   第二字节>0xA1   )就好!  
   
  应该为:  
  程序中只需要判断(   第一字节>=0xB0   &&   第二字节>=0xA1   )就好!  
   
  让各位见笑了!  
  Top

9 楼hse1018(一)回复于 2002-04-03 18:43:07 得分 0

//不好意思,语句有错  
  一个汉字占用两个字节,每个字节的最高未必为1。  
  char   *str;  
  int   i;  
  ....  
   
  for(i=0;i++;i<=strlen(str))  
      if(str[i]&0x80)  
          //可能是汉字,也可能是特殊制表符  
          if(i<strlen(str))&&(strlen(str+i+1)&0x80)  
          {        
                    //i<strlen(str)   是防止到达串尾进行了益处操作。  
                    .........    
                  i++;    
                  //说明没有考虑连续的  
            }  
  Top

10 楼forest_wawa(大坏蛋007)回复于 2002-04-04 00:13:02 得分 0

学了一招!还有,请问老手:  
   
  问题1:这里代码中指的汉字是不是就指俺们这个页面所使用的GB2312汉字编码方式?如果是其他编码(BIG5或什么)的话怎么办?  
   
  问题2:请问有关汉字的编码资料哪里可以找到?Top

11 楼forest_wawa(大坏蛋007)回复于 2002-04-04 00:14:49 得分 0

TO:Nepton(小牛牛)   :-)    
   
  如何在程序中使用unicode编码?  
     
     
  Top

12 楼alang_xy((无名))回复于 2002-06-10 17:31:56 得分 0

如何在程序中使用unicode编码?  
   
  请各位关注。我也学习学习。Top

相关问题

  • 怎样判断字符是否为中文字符?
  • 判断是否是一个中文字符,且必须是中文字符?
  • 如何判断一个字符串中的字符是否中文?
  • 如何用JAVASCRIPT判断字符是否为中文?
  • 判断字符串是否??????
  • 怎样判断字符是否为中文字符?刚才错放到ASP栏去了
  • 请问如何判断一个字符串中是否包含有中文字符???
  • 如何判断一个字符串中是否含有中文??谢谢帮忙!!!
  • VC++中如何判断字串中是否含有中文字符?
  • 判断字符串里面是否喊含有中文的办法?

关键词

  • 字符
  • 中文
  • 判断
  • xb
  • xa
  • 最高

得分解答快速导航

  • 帖主:gk0205
  • hse1018
  • yie_lang

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo