编程语言
首页 > 编程语言> > C++各种数据类型转换

C++各种数据类型转换

作者:互联网

1. 将string转换成wstring

#includewstring string2wstring(string str)  
{  
    wstring result;  
    //获取缓冲区大小,并申请空间,缓冲区大小按字符计算  
    int len = MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.size(), NULL, 0);  
    TCHAR* buffer = new TCHAR[len + 1];  
    //多字节编码转换成宽字节编码  
    MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.size(), buffer, len);  
    buffer[len] = '\0';             //添加字符串结尾  
    //删除缓冲区并返回值  
    result.append(buffer);  
    delete[] buffer;  
    return result;  
}

2. 将wstring转换成string

//将wstring转换成string  
string wstring2string(wstring wstr)  
{  
    string result;  
    //获取缓冲区大小,并申请空间,缓冲区大小事按字节计算的  
    int len = WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), wstr.size(), NULL, 0, NULL, NULL);  
    char* buffer = new char[len + 1];  
    //宽字节编码转换成多字节编码  
    WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), wstr.size(), buffer, len, NULL, NULL);  
    buffer[len] = '\0';  
    //删除缓冲区并返回值  
    result.append(buffer);  
    delete[] buffer;  
    return result;  
}

3 string转const char *

string str;
const char *cstr = str.c_str();

4 其它类型转LPCWSTR

   这种用wstring可以直接转,例如   

wstring  wstr = "qwqwq";

LPCWSTR lpcw = wstr.c_str().

   只要把其它类型转为wstring即可,Qt, CString都可以转。

标签:类型转换,string,buffer,C++,wstring,wstr,len,str,数据
来源: https://blog.51cto.com/u_12570763/2845439