如何将字符串赋给wchar_t类型

c++中,如何将一个字符串(非string类型的变量)赋给wchar_t类型?(除去在定义时赋值的方法)
例如,我现在有许多字符串(如:"abc", "csdnyyds", "你好"), 数量 > 114514
显然用以下在定义时赋值的方法不行,需要先定义再批量赋值,所以如何将字符串赋给wchar_t类型谢谢

wchar_t a[100] = {L"abc", L"csdnyyds", L"你好"}//此处省略114514个字符串

看下 如有帮助给个采纳谢谢 , 也可以参考你上面的那个问答 , 我写的比较详细


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

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

只是,您那么在量,循环会不会有点慢。