在c++中,如何将字符串(非string类型的变量)赋给wchar_t类型?
除去以下在定义时赋值的方法。
wchar_t a[100][100] = {L"abc", L"csdnyyds", L""你好};
谢谢
使用mbstowcs函数进行转换,如有帮助给个采纳谢谢
如图:
不同方式 你可以看下 报错 原因啥的
代码 :
#include <iostream>
#include <cstdlib>
#include <cwchar>
#include <locale>
int main() {
// 设置合适的编码环境
std::setlocale(LC_ALL, "");
const char* str1 = "abc";
const char* str2 = "csdnyyds";
const char* str3 = "你好";
// 定义非string类型的变量(UTF-8编码)
// const char* str1 = u8"abc";
// const char* str2 = u8"csdnyyds";
// const char* str3 = u8"你好";
// ---------------
// const char* str1 = u8"\u0061\u0062\u0063"; // "abc"
// const char* str2 = u8"\u0063\u0073\u0064\u006e\u0079\u0079\u0064\u0073"; // "csdnyyds"
// const char* str3 = u8"\u4f60\u597d"; // "你好"
// ---------------
// const char* str1 = "\x61\x62\x63"; // "abc"
// const char* str2 = "\x63\x73\x64\x6E\x79\x79\x64\x73"; // "csdnyyds"
// const char* str3 = "\xE4\xBD\xA0\xE5\xA5\xBD"; // "你好"
// 定义wchar_t类型的二维数组
wchar_t a[100][100];
// 将字符串转换为wchar_t类型并赋值给二维数组
mbstowcs(a[0], str1, 100);
mbstowcs(a[1], str2, 100);
mbstowcs(a[2], str3, 100);
// 输出结果
std::wcout << a[0] << std::endl;
std::wcout << a[1] << std::endl;
std::wcout << a[2] << std::endl;
return 0;
}
我觉得,应该可以用下标索循环遍历字符串序列赋值的吧。