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

    }

  • 相关阅读:
    过滤器
    JSTL自定义标签
    EL表达式自定义函数
    和 区别
    JSTL标签
    jsp内置对象
    Java堆、栈和常量池以及相关String的详细讲解(转)
    jsp和servlet学习总结
    JAVA多线程实现的两种方式
    redis示例
  • 原文地址:https://www.cnblogs.com/coolbear/p/3096683.html
Copyright © 2011-2022 走看看