zoukankan      html  css  js  c++  java
  • c++ string和wstring之间的转换

    using namespace std;

    1、字符串中不含有汉字

    |--string-->wstring

    string s("abc");

    wstring ws(s.begin(), s.end());//或者wstring ws; ws.assign(s.begin(), s.end());

    |--wstring-->string

    wstring ws(L"ABC");

    string s(ws.begin(), ws.end());//或者string s; s.assign(ws.begin(), ws.end());

    2、字符串中含有汉字

    |--Windows平台:(sizeof(wchar_t)=2)

    wstring myStringToWString(string s){

      size_t convertedChars=0;//被转换的字符个数

      wchar_t wcstring[128];

      setlocale(LC_CTYPE,"chs");//处理汉字

      mbstowcs_s(&convertedChars, wcstring, 128, s.c_str(), 128);

      return wstring(wcstring);

    }

    string myWStringToString(wstring ws){

      size_t convertedChars=0;//被转换的字符个数

      wchar_t cstring[128];

      setlocale(LC_CTYPE,"chs");//处理汉字

      wcstombs_s(&convertedChars, cstring, 128, ws.c_str(), 128);

      return string(cstring);

    }

    |--Linux平台(需要注意的是linux下sizeof(wchar_t)=4)

    wstring myStringToWString(string s){

      wchar_t wcstring[128];

      setlocale(LC_CTYPE,"chs");//处理汉字

      mbstowcs(wcstring, s.c_str(), 128);

      return wstring(wcstring);

    }

    string myWStringToString(wstring ws){

      wchar_t cstring[128];

      setlocale(LC_CTYPE,"chs");//处理汉字

      wcstombs(cstring, ws.c_str(), 128);

      return string(cstring);

    }

  • 相关阅读:
    计算机网络第五版答案 谢希仁
    AJAX代码示例(不使用AJAX控件)
    软件工程期末资料
    各类编程语言视频教程(300G)
    AJAX无刷新分页练习
    C#使用IrisSkin2.dll美化WinForm程序界面
    asp.net判断浏览器版本代码
    C#中国身份证验证
    在IIS中使用SSL配置HTTPS网站(转)
    silverLight导出报表
  • 原文地址:https://www.cnblogs.com/coolbear/p/3096683.html
Copyright © 2011-2022 走看看