在linux下,限定c语言,实现char转char_t 的实现,
wchar_t* toWchar(char* xx){
}
调用main.c
char* str = "sd 时间";
wchar_t* val = toWchar(str);
int size = wcslen(val);
输出size正确值应该为5,
求解
在linux下,限定c语言,实现char转char_t 的实现,
wchar_t* toWchar(char* xx){
}
调用main.c
char* str = "sd 时间";
wchar_t* val = toWchar(str);
int size = wcslen(val);
输出size正确值应该为5,
求解
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <wchar.h>
#include <locale.h>
wchar_t* toWchar(char* str) {
setlocale(LC_ALL, "");
size_t len = strlen(str) + 1;
wchar_t* wstr = malloc(len * sizeof(wchar_t));
mbstowcs(wstr, str, len);
return wstr;
}
int main() {
char* str = "sd 时间";
wchar_t* val = toWchar(str);
int size = wcslen(val);
printf("size = %d\n", size);//size = 5
free(val);
return 0;
}