#include <stdlib.h>
size_t mbstowcs(wchar_t *pwcs, const char *s, size_t n); //转换单字符串为宽字符串
size_t wcstombs(char *mbstr, const wchar_t *wcstr, size_t count ); //转换宽字符串为单字符串
例如:
CString str = L"hello";
char sss[20];
wcstombs(sss,str.GetBuffer(),20); //转换宽字符为单字符
stl 宽字符到 单字符转换
wstring ws = L"Hello";
string s(ws.begin(), ws.end());
mbtowc 和 wctomb 是单个字符相互转换
int len;
setlocale (LC_ALL, "chs"); //设置为简体中文环境
wchar_t wc = L'中';
wprintf(L"1个宽中文字符:%c /n",wc);
char* p = "中";
len = mbtowc (&wc, p, MB_LEN_MAX);
wprintf(L"单字符串转换为1个宽字符:%c 长度: %d/n",wc,len);
char pcmb[MB_LEN_MAX];
len = wctomb (pcmb, wc);
pcmb[len] = 0;
printf("宽字符转换为单字符串:%s 长度:%d/n",pcmb,len);