C++ string字符串中提取汉字
解决方法是:
在GB2321编码中,中文的编码范围是:0xB0A1~0xF7FE
removeChinese(string str) 去除任意种形式字符串中的中文
string keepChinese(string str)只保留任意字符串中的中文
string removeChinese(string str)//移除中文字符
{string strR = "";//int nDest = 0;for(int nIndex = 0; nIndex < str.length(); ++nIndex ){unsigned char chStr = str[nIndex];//这里一定要用无符号的,否则中文字符比较也会通过~if( (chStr >= 0xb0 && chStr <= 0xf7) || ( chStr >= 0xa1 && chStr <= 0xfe ) ) continue;strR += str[nIndex];//nDest++;}//cout<<"长度="<return strR;
}
string keepChinese(string str)//只保留中文字符
{string strR = "";//int nDest = 0;for(int nIndex = 0; nIndex < str.length(); ++nIndex ){unsigned char chStr = str[nIndex];//这里一定要用无符号的,否则中文字符比较也会通过~if( (chStr >= 0xb0 && chStr <= 0xf7) || ( chStr >= 0xa1 && chStr <= 0xfe ) ) strR+=str[nIndex];//strR[nDest] = str[nIndex];//nDest++;}return strR;
}
运行结果:
removeChinese("摆/v")得到"/v"
keepChinese("摆/v")得到"摆"
参考:这位老铁,帮我大忙,以上代码出自我对他这段代码的修改
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
