700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C++ 区分中文 非中文 截取含有中文的string字符串的两种方法

C++ 区分中文 非中文 截取含有中文的string字符串的两种方法

时间:2018-07-20 20:00:08

相关推荐

C++ 区分中文 非中文 截取含有中文的string字符串的两种方法

C++ 区分中文,非中文,截取含有中文的string字符串的两种方法

方法一 根据中文在ASCII中的范围判断方法二 把string转成wstring

转自:/imyzy/1190639

方法一 根据中文在ASCII中的范围判断

#include "stdafx.h"#include <string>#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){string s = "你好CSDN,我的";string t;for(int i=0; i<s.length(); i++){if(s<255 && s>0)//扩充的ASCII字符范围为0-255,如是,处理一个字节{t.append(s.substr(i,1));t.append("/");}else//<0,>255的是汉字,处理两个字节{t.append(s.substr(i,2));t.append("/");++i;}}cout << t << endl;//输出符合要求return 0;}

方法二 把string转成wstring

wstring str2wstr(string str){size_t len = str.size();wchar_t * b = (wchar_t *)malloc((len+1)*sizeof(wchar_t));MBCS2Unicode(b,str.c_str());wstring r(b);free(b);return r;}string wstr2str(wstring wstr){size_t len = wstr.size();char * b = (char *)malloc((2*len+1)*sizeof(char));Unicode2MBCS(b,wstr.c_str());string r(b);free(b);return r;}

以下为原作者的附言:

希望能为需要的朋友解决问题,

如果还不能解决可以联系QQ897703027,email: hongjiandao@

欢迎大家交流cocos2d-x,C++等各方面的知识,或者创业团队求收留,本人目前在做cocos2dx网游

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。