请问,怎么把宽字符转化为多字节字符? 80
注意,是字符而不是字符串,API都是转字符串的,难道就没有转单个字符的??即wchar_t转成char,如wchar_t[0]转为char[0]...
注意,是字符而不是字符串,API都是转字符串的,难道就没有转单个字符的??
即wchar_t转成char,如wchar_t[0]转为char[0] 展开
即wchar_t转成char,如wchar_t[0]转为char[0] 展开
1个回答
展开全部
SDK中有一个API函数 WideCharToMultiByte 可以实现的。函数声明如下:
int WideCharToMultiByte(
UINT CodePage, // code page
DWORD dwFlags, // performance and mapping flags
LPCWSTR lpWideCharStr, // wide-character string
int cchWideChar, // number of chars in string
LPSTR lpMultiByteStr, // buffer for new string
int cbMultiByte, // size of buffer
LPCSTR
lpDefaultChar, // default for unmappable chars
LPBOOL lpUsedDefaultChar // set when default char used
);
这方面的问题,你还可以参考 windows 核心 编程 第二章 中关于Unicode编码和ANSI编码的内容。
追问
这个API本来就是用来转换字符串的而不是单个字符
追答
单个字符直接强制转换 我指的ascii码 汉子你是没法转的 而且转了也没意义 除非就是做很技巧性的东西 还有如汉字这种两字节的转还要考虑 存储顺序 问题 不知道你要做什么 因为字符串主要的作用是输出 和用户交互
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询