在c++中,char类型占用1个字节,而wchar_t类型占用2个字节。因此,如果想将一个字符串转换成char数组,每个成员为2字节,可以采用wchar_t数组来实现。

下面是示例代码:

#include <iostream>
#include <string>
#include <cstring>

using namespace std;

int main()
{
    string str = "Hello, world!"; // 原始字符串
    int len = str.length(); // 字符串长度
    wchar_t* wstr = new wchar_t[len + 1]; // 申请wchar_t数组
    mbstowcs(wstr, str.c_str(), len + 1); // 将字符串转换为wchar_t数组
    for (int i = 0; i < len; i++)
    {
        cout << (int)wstr[i] << " "; // 输出每个成员的值
    }
    cout << endl;
    delete[] wstr; // 释放内存
    return 0;
}

在上面的代码中,首先定义了一个字符串变量str,然后使用string的length()函数获取字符串长度。接着,使用new运算符申请一个wchar_t数组,并指定长度为原始字符串长度+1,因为需要在数组末尾添加一个null字符。接下来,使用mbstowcs()函数将原始字符串转换为wchar_t数组。最后,使用for循环遍历wchar_t数组的每个成员,并输出它的值。

需要注意的是,上面的代码中使用了delete[]运算符释放了申请的内存,以避免内存泄漏


原文地址: https://www.cveoy.top/t/topic/eF5O 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录