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

 我来答
ontheway5G
推荐于2016-01-28 · TA获得超过1493个赞
知道小有建树答主
回答量:1433
采纳率:50%
帮助的人:334万
展开全部
不管是多字节,还是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;
}
Roxxette
2013-03-27 · TA获得超过829个赞
知道小有建树答主
回答量:1341
采纳率:0%
帮助的人:840万
展开全部
wchar_t *wp = wcsstr(L"你好", L"你");

if (wp == NULL)
wprintf(L"%ls\n", L"没有找到");
else
wprintf(L"%ls\n", wp);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weida爱问
2013-03-27 · TA获得超过2427个赞
知道小有建树答主
回答量:1345
采纳率:72%
帮助的人:923万
展开全部
很简单,中文存放的是两个字节的区位码,你遍历一遍就好了!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JILODREAM
2013-03-27 · TA获得超过600个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:141万
展开全部
试试linq
里边用select 查找
你可以上网查找下linq 的简单用法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式