如何将字符串赋给wchar_t类型

在c++中,如何将字符串(非string类型的变量)赋给wchar_t类型?
除去以下
在定义时赋值
的方法。

wchar_t a[100][100] = {L"abc", L"csdnyyds", L""你好};

谢谢

使用mbstowcs函数进行转换,如有帮助给个采纳谢谢
如图:

img

不同方式 你可以看下 报错 原因啥的

img

代码 :

#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;
}


我觉得,应该可以用下标索循环遍历字符串序列赋值的吧。