zoukankan      html  css  js  c++  java
  • wstring与string相互转换

    #include <string>
    #include <locale.h> 
    
    // 需包含locale、string头文件、使用setlocale函数。
    std::wstring StringToWstring(const std::string str)
    {// string转wstring
        unsigned len = str.size() * 2;// 预留字节数
        setlocale(LC_CTYPE, "");     //必须调用此函数
        wchar_t *p = new wchar_t[len];// 申请一段内存存放转换后的字符串
        mbstowcs(p,str.c_str(),len);// 转换
        std::wstring str1(p);
        delete[] p;// 释放申请的内存
        return str1;
    }
    
    std::string WstringToString(const std::wstring str)
    {// wstring转string
        unsigned len = str.size() * 4;
        setlocale(LC_CTYPE, "");
        char *p = new char[len];
        wcstombs(p,str.c_str(),len);
        std::string str1(p);
        delete[] p;
        return str1;
    }
    
    
    int main()
    {
        std::string str = "我是SunboyL。";
        std::wstring str1 = StringToWstring(str);// string转换为wstring
        
        str1 = L"我是不是SunboyL。";
        str = WstringToString(str1);// wstring转换为string
        return 0;
    }

    以后需要用到两种类型转换时,可直接copy这两个函数使用了。

  • 相关阅读:
    纯快排
    Quick Sort(快速排序)
    归并排序 ALDS1_5_B:Merge Sort
    单调栈(POJ2559)
    Sequence
    Codeforces Round #503
    度度熊学队列
    Always Online hdu 6350
    Hills And Valleys
    Problem G. Depth-First Search
  • 原文地址:https://www.cnblogs.com/SunboyL/p/stringandwstring.html
Copyright © 2011-2022 走看看