gpt4 book ai didi

c++ - 在 C++ 中将 std::wstring 转换为 const *char

转载 作者:IT老高 更新时间:2023-10-28 23:15:21 27 4
gpt4 key购买 nike

如何在 C++ 中将 std::wstring 转换为 const *char

最佳答案

您可以使用 c_str 成员函数将 std::wstring 转换为 const wchar_t *:

std::wstring wStr;
const wchar_t *str = wStr.c_str();

然而,转换成 const char * 并不自然:它需要额外调用 std::wcstombs ,例如:

#include <cstdlib>

// ...

std::wstring wStr;
const wchar_t *input = wStr.c_str();

// Count required buffer size (plus one for null-terminator).
size_t size = (wcslen(input) + 1) * sizeof(wchar_t);
char *buffer = new char[size];

#ifdef __STDC_LIB_EXT1__
// wcstombs_s is only guaranteed to be available if __STDC_LIB_EXT1__ is defined
size_t convertedSize;
std::wcstombs_s(&convertedSize, buffer, size, input, size);
#else
std::wcstombs(buffer, input, size);
#endif

/* Use the string stored in "buffer" variable */

// Free allocated memory:
delete buffer;

关于c++ - 在 C++ 中将 std::wstring 转换为 const *char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4387288/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com