———怎么判断一个字符串中含有汉字——— 怎么判断一个字符串中含有汉字? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 判断它的ASCII码是否介于A,z之间即可,以前的贴子有讨论,去搜索一下 建立一个临时字符串CString t,把数据拷贝进来然后调用CString::Remove把小于161的全部删除,如果长度不是0,那么就有汉字 CString ss="hello 你好!";BOOL bCh=FALSE;//是否有中文for(int i=0;1<(int)strlen(ss);i++){ if((BYTE)ss[i]>=0xa1) bCH=TRUE;} papaya_stone,如果有两个连续制表符,制表符>0xa1,你不就判断错误吗? IsMBLead, IsMBTail,好像是这两个函数 用函数_mbsbtype并结合_mbsinc来判断。 >=0xa1只是全角符号(包括中文),>=0xb1就肯定是汉字了:) ascll高位为0。为1的是汉字。 >=0xb1不一定就是汉字,你翻翻ascii表就知道了 ascii表也有不同的版本好像ms使用的ascii表跟国际标准略有差别至于字符内码,相同的内码对不同的code page就指向不同的字符::IsDBCSLeadByte用的是ANSI code page用::IsDBCSLeadByteEx可以制定code page来检测 大家有感到头脑不够用的时候吗? C/S结构能实现google地图载入吗? DAO也有难搞的地方! 我来试试 奇怪了 救救我!我的VC出事了? 谁帮忙写个程序啊!100分 判断某个进程或者目录是否存在,越小越好 请问如何在WIN 2000中隐藏程序,不被任务管理器查 MFC对话框全屏问题 200分求使用Socket侦听的Service源代码,谢谢 谁知道有什么是VC能而DELPHI不能的
然后调用CString::Remove把小于161的全部删除,如果长度不是0,那么就有汉字
BOOL bCh=FALSE;//是否有中文
for(int i=0;1<(int)strlen(ss);i++)
{
if((BYTE)ss[i]>=0xa1)
bCH=TRUE;
}
为1的是汉字。
好像ms使用的ascii表跟国际标准略有差别
至于字符内码,相同的内码对不同的code page就指向
不同的字符
::IsDBCSLeadByte用的是ANSI code page
用::IsDBCSLeadByteEx可以制定code page来检测