您的位置:首页 > 其它

如何判断一个字符串中含有中文?

2007-09-04 10:20 447 查看
在以前的项目中,我就遇到这样一个问题,找遍了api也没有我需要的,所以只能自己写了一个,希望对大家有用!
如果哪里有问题的请各位指出来!

// 判断是否有中文字符 [1/16/2007 weixing.wang]
BOOL HasChineseChar(const CString &destStr)
{
BOOL bHasChinsesChar = FALSE;
int nLen = destStr.GetLength();
unsigned char c1,c2;
BOOL bFirstSpace = TRUE;

for(int i=0; i<nLen; i++)
{
c1 = destStr[i];

if((i+1) >= nLen)
{
if (bFirstSpace && (c1 == ' ' || c1 == '/t'))
{
}
else
{
//strConv += destStr[i];
bFirstSpace = FALSE;
}
break;
}
else
{
c2 = destStr[i+1];
if(c1 == 163) //判断是否为全角字符
{
//strConv += TCHAR(c2-128);
i++;
bFirstSpace = FALSE;
}
else if((int)c1 > 163) //判断是否为文字
{
//strConv += (TCHAR)c1;
//strConv += (TCHAR)c2;
i++;
bFirstSpace = FALSE;
bHasChinsesChar = TRUE;
break;
}
else if((c1 == 161) && (c2 == 161)) //全为空格
{
i++;
}
else //如果是半角字符
{
if (bFirstSpace && (c1 == ' ' || c1 == '/t'))
{
}
else
{
//strConv += (TCHAR)c1;
bFirstSpace = FALSE;
}
}//endi
}
}

return bHasChinsesChar;
}

这段code已经经过长时间的测试,应该没有问题放心使用!
本文转载必须通过本人同意,谢谢合作,
以后我会把以前写的一些有意义的代码放到这里分享给大家!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: