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这两个函数使用了。

  • 相关阅读:
    二次冲刺站立会议五
    二次冲刺站立会议四
    二次冲刺站立会议三
    二次冲刺站立会议二
    自己常用网址导航
    Eclipse几个配置
    JVM参数和jvm.log
    JVM性能监控命令
    Linux基本信息查看命令
    Linux IO性能监控工具
  • 原文地址:https://www.cnblogs.com/SunboyL/p/stringandwstring.html
Copyright © 2011-2022 走看看