在windows+系统语言为简体中文的环境下,字符串编码格式采用国标(GB),
此时,要判断字符串是否为全中文,可采用下述代码:
BOOL IsStrChinese(LPCTSTR szStr); // 全中文-只适用于GB
BOOL IsStrChinese( LPCTSTR szStr )
{
int len=lstrlen(szStr);
if (len <= 0)
return FALSE;
int nCN=0;
TCHAR ch=' ', ch2=' ';
for (int i = 0; i <len-1; i++)
{
ch = szStr[i];
ch2 = szStr[i+1];
if (ch & 0x80 && ch2 & 0x80) // 前后两个字符最高位都是1,即0x80
{
i++; // 采用GB编码时,一个中文字符占两字节
nCN++; // 中文数+1
}
else
{
return FALSE;
}
}
return (nCN*2 == lstrlen(szStr));
}
有问题欢迎指出,一起探讨