wstring转string C++
时间: 2023-10-03 19:04:16 浏览: 144
wstring转string
5星 · 资源好评率100%
在C中,可以使用以下代码将wstring转换为string:
```c
#include <stdio.h>
#include <wchar.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
int main() {
setlocale(LC_ALL, ""); // 设置本地化
wchar_t wstr[] = L"Hello, world!"; // 宽字符数组
char* str = malloc(sizeof(char) * wcslen(wstr)); // 分配字符串内存
wcstombs(str, wstr, wcslen(wstr)); // 将宽字符数组转换为多字节字符数组
printf("String: %s\n", str); // 输出字符串
free(str); // 释放内存
return 0;
}
```
其中,`wcstombs()`函数用于将宽字符数组转换为多字节字符数组,需要传入三个参数:目标字符串指针、源宽字符数组指针、源宽字符数组长度。最后,需要手动释放分配的内存。
注意,在使用`wcstombs()`函数前,需要通过`setlocale()`函数设置本地化,否则可能会出现乱码问题。
阅读全文