c++ 将一个字符串转换成 char数组每个成员为2字节
在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 著作权归作者所有。请勿转载和采集!