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

    }

  • 相关阅读:
    10. Regular Expression Matching
    9. Palindrome Number (考虑负数的情况)
    8. String to Integer (整数的溢出)
    7. Reverse Integer (整数的溢出)
    LeetCode Minimum Size Subarray Sum
    LeetCode Course Schedule II
    Linux 文件缓存 (一)
    LeetCode Tries Prefix Tree
    Linux : lsof 命令
    LeetCode Binary Tree Right Side View
  • 原文地址:https://www.cnblogs.com/coolbear/p/3096683.html
Copyright © 2011-2022 走看看