64,282
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
wchar_t * char_wchar()
{
//char * 转换 wchar_t *
//大概方法就是先
char * c = "中文abc";
//然后想办法转换成 wchar_t * w
wchar_t * w = ( wchar_t * ) c ;//该行代码错误的
//求补全代码!
//求补全代码!
//求补全代码!
return w;
}
int main()
{
setlocale(LC_ALL, "");
char * c = "中文char *\r\n";
printf(c);
wchar_t * w = L"中文wchar_t *\r\n";
wprintf(w);
wprintf( char_wchar() );//print失败
getchar();
}
void char_wchar(char * str, wchar_t * ret, int len)
{
int i;
for(i=0;i<len;i++){
ret[i]=(wchar_t)str[i]
}
}
试下#include <iostream>
#include <Windows.h>
wchar_t * pchar_pwchar(char * pchar)
{
size_t len = strlen(pchar) + 1;
wchar_t * pwchar =
(wchar_t*)malloc(len*sizeof(wchar_t));
mbstowcs_s( 0, pwchar, len, pchar, _TRUNCATE);
return pwchar;
}
wchar_t * char_wchar(char * str)
{
int size = MultiByteToWideChar(CP_ACP,0,str,-1,NULL,0);
wchar_t *ch = new wchar_t[size+1];
MultiByteToWideChar(CP_ACP,0,str,-1,ch,size);
return ch;
}
int main()
{
setlocale(LC_ALL, "");
char * c = "中文char *\r\n";
printf(c);
wchar_t * w = char_wchar( c );
wprintf(w);
getchar();
}
char * c = "中文char *\r\n";
printf(c);
wchar_t * w = L"中文wchar_t *\r\n";
wprintf(w);
std::wstring ws = StringTool::MbStrToWcStr(c, L"zh_CN.GBK");
wprintf(ws.c_str());