C++如何判断String中是否含有某个中文词汇。字符串全部为中文词汇,之间用空格隔开。

如题所述

不管是多字节,还是UNICODE,一个字节一个字节去看最高的bit,是否为1, 为1 就是汉字。
如果是UNICODE,那么你可以拿出第一个字节,如果高位是1,那么接着拿下一个字节,这两个字节是一个汉字,如果是0, 那么这个字节的内容就是你要的字符,高字节可以忽略。
int main()
{
char szText[] = "我是CIW.";
char szChinese[3] = {0};
int i = 0, nLen = strlen(szText);
for(; i < nLen; i++)
{
if( szText[i] >= 0 && szText[i] <= 127 ) //不是全角字符?
printf("%c\n", szText[i]);
else //是全角字符
szChinese[0] = szText[i], szChinese[1] = szText[i + 1], printf("%s\n", szChinese), i++; //中文是2个字节,所以i++
}
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-27
wchar_t *wp = wcsstr(L"你好", L"你");

if (wp == NULL)
wprintf(L"%ls\n", L"没有找到");
else
wprintf(L"%ls\n", wp);
第2个回答  2013-03-27
很简单,中文存放的是两个字节的区位码,你遍历一遍就好了!!
第3个回答  2013-03-27
试试linq
里边用select 查找
你可以上网查找下linq 的简单用法
相似回答