MFC中CString与Char类型字符串的相互转换
2014-06-11 23:30
357 查看
我所使用的开发工具是Visual Studio 2013,在建立MFC应用程序时,工程默认字符集是使用Unicode字符集的,如下图:
而我们学习C/C++语言时常常使用的char类型字符串是基于ANSI,这在有些时候使我们在基于两种不同字符集的字符串之间进行转换有些不适应。例如CString和char之间的相互转换。
我们知道Unicode是使用两个字节来表示一个字符的,与ANSI用一个字节来存放一个字符相比,可以表示更多的字符,这就使Unicode表示各国语言成为可能,从而也就成为了一种通用的字符集了。
那么在这两种类型的字符串间的转换本质上都是存储空间分配的问题,也就是如何将两个字节表示的字符,用一个字节来表示。当然这种转换仅对英文有用,对于中文来说,如何硬要转换成ANSI,那就只能是乱码了。
下面是我参考网上资料,整理的个人认为最符合这个原理的转换方法,只需新建一个控制台工程,把下面的文件加入,运行,就可以自己测试一下我的想法是不是正确的:
而我们学习C/C++语言时常常使用的char类型字符串是基于ANSI,这在有些时候使我们在基于两种不同字符集的字符串之间进行转换有些不适应。例如CString和char之间的相互转换。
我们知道Unicode是使用两个字节来表示一个字符的,与ANSI用一个字节来存放一个字符相比,可以表示更多的字符,这就使Unicode表示各国语言成为可能,从而也就成为了一种通用的字符集了。
那么在这两种类型的字符串间的转换本质上都是存储空间分配的问题,也就是如何将两个字节表示的字符,用一个字节来表示。当然这种转换仅对英文有用,对于中文来说,如何硬要转换成ANSI,那就只能是乱码了。
下面是我参考网上资料,整理的个人认为最符合这个原理的转换方法,只需新建一个控制台工程,把下面的文件加入,运行,就可以自己测试一下我的想法是不是正确的:
相关文章推荐
- 完成一程序演示字符数组、C风格字符串、std::string和MFC中的Cstring类型之间的相互转换
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
- CString/String/int/wchar/char类型相转 CString各种类型相互转换小结
- char*数组(c类型字符串)和Vc++中的CString的转换,char*数组等问题
- Cstring与char、string、int等数据类型的相互转换方法
- 有关int,float,double型与字符串char*类型的相互转换
- CString与char*数据类型转换 在MFC中(以后还会更新,仅做笔记)
- 字符串的相互转换(TCHAR,char,CString)
- CString、wchar和char类型的相互转换(转载)
- VC 中 Cstring 与 int、float、double、char、string数据类型的相互转换
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
- MFC下的各种字符串类型和相互转换
- MFC下的各种字符串类型和相互转换
- 在MFC中数据类型的转换:比如将char *转换为cstring
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
- MFC/C++/C中字符类型CString, int, string, char*转换(转)
- MFC CString Char* int之间相互转换。