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);

    }

  • 相关阅读:
    windows2008下载
    js代码格式化
    javascript小实例【第二课时笔记】
    学习CSS的一些有效资源
    javascript小实例【第一课时笔记】
    关于HTML5的一些基础知识
    javascript小实例【第三课时笔记】
    c#缓存介绍(转)
    [C#] String与string的区别
    Asp.Net Cache缓存使用代码
  • 原文地址:https://www.cnblogs.com/coolbear/p/3096683.html
Copyright © 2011-2022 走看看