C++ 区分中文,非中文,截取含有中文的string字符串的两种方法
生活随笔
收集整理的這篇文章主要介紹了
C++ 区分中文,非中文,截取含有中文的string字符串的两种方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C++ 區分中文,非中文,截取含有中文的string字符串的兩種方法
- 方法一 根據中文在ASCII中的范圍判斷
- 方法二 把string轉成wstring
轉自: http://blog.51cto.com/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@163.com
歡迎大家交流cocos2d-x,C++等各方面的知識,或者創業團隊求收留,本人目前在做cocos2dx網游
總結
以上是生活随笔為你收集整理的C++ 区分中文,非中文,截取含有中文的string字符串的两种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中List高效去重
- 下一篇: IDEA 引入传统 j2ee sprin