簡體   English   中英

如何將 wstring 轉換為 wchar_t*? C++

[英]How to convert wstring to wchar_t*? C++

我想將 wstring 轉換為 wchar_t*。 我已經嘗試了我所知道的一切,請幫助。 我想將 wstring 轉換為 wchar_t*。

您是否嘗試閱讀參考資料

const wchar_t* wcs = s.c_str();

無法將wstring轉換為wchar_t*但您可以將其轉換為const wchar_t* ,這就是 K.Kirsz 的回答

這是設計使然,因為您可以訪問 const 指針,但不應操縱指針。 查看相關問題及其答案。

最好的辦法是使用_wcsdup創建一個新字符串並訪問非 const 緩沖區,那里給出了一個 ascii 示例。

對於 Unicode:

    wstring str = L"I am a unicode string";
    wchar_t* ptr = _wcsdup(str.c_str());
    // use ptr here....
    free(ptr); // free memory when done

我剛有同樣的問題,就到了這里。 幾年后發布我的答案,但這有效:

std::wstring wname1 = L"wide string";
wchar_t wname2[1024];
wcscpy(wname2, wname1.c_str());
wchar_t* pfoo = new wchar_t[1024];
wcscpy(pfoo, wname1.c_str());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM