| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2411 人关注过本帖
标题:新手学习!! 如何区分字符串中的汉字还是英文??
只看楼主 加入收藏
zx123gy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-6-7
收藏
 问题点数:0 回复次数:8 
新手学习!! 如何区分字符串中的汉字还是英文??

比如说 这样一个字符串 char str[30] 让用户输入字符~~~
用户输入 i like 编程论坛.
可是 英文和标点符号只占1个字节,而汉字占了2个字节,我怎么才能区分出 那个是汉字 哪个是 英文 哪个是标点符号???

搜索更多相关主题的帖子: 汉字 字符 英文 学习 
2007-08-09 11:35
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
没有汉字还好处理,加上汉字,麻烦了。

mark下。

Fight  to win  or  die...
2007-08-09 11:44
zx123gy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-6-7
收藏
得分:0 
不懂~~~~~
2007-08-09 11:46
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

汉字由2个字节组成...
为了和标准ASCII码(0-127)区别开, 所以汉字每个字节的最高位都置1..

1xxx xxxx 1xxx xxxx (2个字节的汉字..)
所以你判断字节最高位是否为1就可以了..

假设指针char* p指向当前待判断字节...
if(*p && 0x80) //0x80 = 1000 0000
printf("这可能是汉字字节");


注意, 扩展ASCII码(128-255)的最高位也是1, 所以可能出现判断失误...

其实汉字编码还有一套完整的规则, 原来我并没有去深研, 现在忘得也差不多了,
所以只能把我还记得的部分拿来讲一下..
哪位有兴趣和精力可以去查下资料, 然后帖过来...


女侠,约吗?
2007-08-09 20:44
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

关于乱码
之所以在DOS下显示汉字是乱码, 就是因为DOS下将汉字作为单字节拆开来处理,
这时就会把汉字字节当成扩展ASCII, 都是一些符号, 所以看起来是乱码了..


女侠,约吗?
2007-08-09 20:47
zx123gy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-6-7
收藏
得分:0 
谢谢 楼上大哥~~
有收获
2007-08-10 10:26
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
收藏
得分:0 
这个,着程序编译时可以通过宏定义决定用混合编码还是纯粹的UNICODE,混合编码有的字符一个字节有的两个,双字符编码所有字符都是两个。VC默认用混合编码
2007-08-10 12:37
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

不亮...LZ是要判断...不是记数啥的...
用了unicode反而不好弄了...


女侠,约吗?
2007-08-10 13:16
terisevend
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-6-2
收藏
得分:0 
LZ, 我刚刚在GAMERES那里看到你的贴...和这问题一样...
[QUOTE]
引自GAMERES BBS...

POSTED BY OSFG

--------------------------------------------------------------------------------
Re:新手学习!! 如何区分字符串中的汉字还是英文??

看你的 (BYTE)ch > 128不 大是汉字小是英文

[/QUOTE]

2007-08-11 01:59
快速回复:新手学习!! 如何区分字符串中的汉字还是英文??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016718 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved