CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

关于中英文文本处理的问题?

楼主cdhit(积极态度)2005-11-07 10:50:07 在 C/C++ / C++ 语言 提问

我想给中文文本根据中文的标点符号断句。找到"!?。",他们之间的则为一个句子。  
   
  按照窄字节读入,遇到了如下的问题,譬如说这个句子"模式?",  
  我用str="模式?",str.find("?",0);来进行查找。  
  "?"的十六进制位A3BF,而"模式"两字"模"的后一十六进制数与"式"字的前一十六进制数的组合恰好位  
  A3BF,这样查找就产生了错误。  
   
  然后我就考虑用宽字符读入,用宽字符查找,但是文本中还有英文的单词,  
  那么我应该怎么办呢?  
  问题点数:100、回复次数:7Top

1 楼oilking_zhh(痞子张)回复于 2005-11-07 11:03:47 得分 0

首先判断当前字节得内容是否为英文?如果不是英文在按你说得宽子去判断。  
  我以前做LED显示得时候也遇到这样得问题,这样就解决了。Top

2 楼ugg(逸学堂(exuetang.net))回复于 2005-11-07 11:40:35 得分 0

string   str("你好");  
  const   char   *p   =   str.c_str();  
  if(*p&0x80   ==   0x80)//   中文字符  
  {  
  }  
  else  
  {//英文字符  
  }Top

3 楼K()回复于 2005-11-07 12:43:33 得分 0

自己写一个find?  
   
  if   (*p>128)  
        //中文  
  else    
        //英文Top

4 楼qhfu(改个名字)回复于 2005-11-07 13:45:46 得分 0

用unicode?Top

5 楼cdhit(积极态度)回复于 2005-11-07 13:53:47 得分 0

楼上两位说的都不清楚,  
  能不能给出依据?  
  我看一段程序里面是通过判断*p的正负来判断的,  
  英文是ASCii所以是正的,  
  中文都是负的。  
  不知道这样对不对?  
  等待高手中,企盼能把这个问题讲透彻点。Top

6 楼yyzi(由由籽)回复于 2005-11-07 15:57:02 得分 50

 
    unicode   编码  
   
    #define   UNICODE  
   
    然后所有的字符使用TCHAR   ,这样就不存在中英文直接编码的的区别了,不过你的空间利用上  
    有点小损失:)Top

7 楼wohow()回复于 2005-11-07 16:14:49 得分 50

GB2312编码用两个字节表示汉字,两个字节的unsigned   char值均在0xA0~0xFE之间,所以一般可以用正负来判断汉字。英文ASCII都是正的  
  Unicode中常用的ucs2每个字符使用两个字节,用定义过UNICODE和_UNICODE两个宏的TCHAR,或者干脆就明确的使用wchar_t(Linux中wchar_t是ucs4)。Unicode对国际上大多数字符统一编码,常量字符串用_T("")(对应于TCHAR)或者就明确地使用L""(对应于wchar_t)Top

相关问题

  • 如何取得一个文本框的长度呀?(中英文)
  • 求助!关于中英文混合文本的截取
  • 中英文混合的文本中怎么测试行尾是单词?
  • 中英文混合的文本中怎么测试行尾是单词?
  • 用户输入一些中英文本,怎样判断哪些是汉字??
  • 文本、EXECL处理
  • 关于中英文字符串的处理--(每次我都给分的!)
  • ◆◆◆ 紧急求助: 关于正则表达式处理中英文问题 ◆◆◆
  • 请问怎样读入包含有中英文字符串的文本文件并放入widestring?
  • 中英文

关键词

  • 字符
  • 文本
  • 编码
  • 中文
  • unicode
  • 模式
  • 十六进制
  • 英文
  • 判断
  • 查找

得分解答快速导航

  • 帖主:cdhit
  • yyzi
  • wohow

相关链接

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

广告也精彩

反馈

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