长字符串,中英文都有,怎么把它分成单独的中文串和英文串?

ttfish 2005-01-11 02:19:17
我的到一个文本,要把他分成中文和英文的。
哪位给个效率高的代码
...全文
119 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttfish 2005-01-14
  • 打赏
  • 举报
回复
很痛苦啊,如果串很长,比如是一个篇文章,会很慢吗?
另外一些标点符号也会混在汉字中啊,
I_Love_CPP 2005-01-13
  • 打赏
  • 举报
回复
怎样才能知道一个编辑筐里面有汉字(占两个字节),或者全部是英语(占一个字节)?

///////////////////////////////////////////////////

回复人: I_Love_CPP(我爱C++) ( ) 信誉:100 2004-11-18 18:42:53 得分:0

这个问题没有遇到过,你去看看Jeff的《Windows核心编程》之 <字符集>。

关注中。。。。


回复人: flyhigh(一不小心) ( ) 信誉:98 2004-11-18 20:28:46 得分:7

取出字符串,从头逐个查找,如果一个字符的值<0就是中文,一个中文包含2个字节.



回复人: scmsir(小小鸟) ( ) 信誉:94 2004-11-18 21:05:05 得分:7

中文的字符占两位,都是负值。


回复人: fmddlmyy(寒潭) ( ) 信誉:100 2004-11-18 22:32:21 得分:6

对于使用GBK内码的情况,如果所有字符(字节)都小于0x80,就全部是ASCII字符(英语),否则就包含汉字。

/////////////////////////////
我到现在也没有验证上面那位正确,你自己参考以上的发言。
顺便把你验证的结果告诉我。
(我的那条发言不需要验证了,那本书上肯定有 ^o^)
ttfish 2005-01-13
  • 打赏
  • 举报
回复

ttfish 2005-01-11
  • 打赏
  • 举报
回复
看来还是蛮麻烦,哪里有现成的东西吗,最好有例子啊,看来字符串处理的确是很重要哦
objectman 2005-01-11
  • 打赏
  • 举报
回复
英文是全角的还是半角的?全角的好办,两个字节一判断,小于某值(忘了是多少了),全是字母。
如果是半角全角混杂的,就麻烦些,还得一个字符一个字符的判断,如果第一个字符是英文,就从下一个字符继续判断,如果第一个字符是汉字开头字符,则跳过两个字节继续判断。
oyljerry 2005-01-11
  • 打赏
  • 举报
回复
只能一个个字符读入,然后判断了,汉字第一个字符为负数
门吹西风 2005-01-11
  • 打赏
  • 举报
回复
高效率的没有,

int nLen = strlen(szString);
for ( int i = 0 ; i < nLen ; )
{
if ( (szString[i] & 0x80 ) == 0 )//E文字符
{
i ++ ;
//do something here
}
else //是个汉字
{
i += 2 ;
// do something here
}
}
marckle 2005-01-11
  • 打赏
  • 举报
回复
字符串遍历一下.
判断一个字符是不是双字节的第一个字节就行了.
liuyan4794 2005-01-11
  • 打赏
  • 举报
回复
应该要一个一个的来吧

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧