VC++中的字符问题
2015-07-26 14:26
295 查看
1字符集的历史
最初,互联网上只有一种字符集ANSI的ASCII.(American Standard Code for Information Interchange)这个字符集,和由他派生的字符集,统称为MBCS(Multi-Byte Chactacter System,多字节字符系统或者也叫ANSI字符集。
unicode又叫做万国码,是统一码联盟制定的用来容纳世界上所有国家文字的编码。UCS是ISO制定的。两者在发展中走向了统一。unicode的实现形式有UTF8,UTF16,UTF32等等。UCS的实现形式有UCS2 UCS4 UTF16是UCS2的超集,而UTF32是UCS4的子集。
2、基本数据类型
char是8位字符类型
wchar_t是16位或者32位字符类型(GNU Libc中规定为32位)
char数据转化为wchar_t可以用如下语句:
wchar_t appName[5]=TEXT("test");
3、字符串的含义:
在没有定义Unicode时候
对于PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR LPCSTR,他们的含义是一致的,都是由NULL结尾的char字符串。(也就是char* 类型,const)
在VC中,_T("")和_TEXT("")和__T("")的含义都是一样的,都是没有含义,其定义在tchar.h中。当程序中出现常量字符串时,就是ASCII编码。
而PTSTR, LPTSTR, PUTSTR, LPUTSTR,LPSTR他们的含义是和上面一样,只不过不是const。
CString在afxStr.h中定义。两个CString对象直接相加,就可以实现字符串的连接。
最初,互联网上只有一种字符集ANSI的ASCII.(American Standard Code for Information Interchange)这个字符集,和由他派生的字符集,统称为MBCS(Multi-Byte Chactacter System,多字节字符系统或者也叫ANSI字符集。
unicode又叫做万国码,是统一码联盟制定的用来容纳世界上所有国家文字的编码。UCS是ISO制定的。两者在发展中走向了统一。unicode的实现形式有UTF8,UTF16,UTF32等等。UCS的实现形式有UCS2 UCS4 UTF16是UCS2的超集,而UTF32是UCS4的子集。
2、基本数据类型
char是8位字符类型
wchar_t是16位或者32位字符类型(GNU Libc中规定为32位)
char数据转化为wchar_t可以用如下语句:
wchar_t appName[5]=TEXT("test");
3、字符串的含义:
在没有定义Unicode时候
对于PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR LPCSTR,他们的含义是一致的,都是由NULL结尾的char字符串。(也就是char* 类型,const)
在VC中,_T("")和_TEXT("")和__T("")的含义都是一样的,都是没有含义,其定义在tchar.h中。当程序中出现常量字符串时,就是ASCII编码。
而PTSTR, LPTSTR, PUTSTR, LPUTSTR,LPSTR他们的含义是和上面一样,只不过不是const。
CString在afxStr.h中定义。两个CString对象直接相加,就可以实现字符串的连接。
相关文章推荐
- C++中构造函数调用构造函数
- C++的头文件和实现文件分别写什么
- C++类中静态变量和静态方法的注意事项
- 【转】C/C++中可变参数的详细介绍(va_list,va_start,va_arg,va_end)
- C++ 代码换行
- [C++]_[初级]_[pthread多线程之生产者消费者模型]
- 关于C语言的传值问题
- C语言函数指针
- C++利用stl::sort对结构体数组中的字符串成员排序
- 有关c语言的++与--
- C++ 异常处理流程
- C++ 无名对象
- c++中string类的用法详解
- C++ 智能指针的简单实现
- C语言中的输入输出函数
- uC/OS-II学习笔记——优先级反转与优先级继承机制
- C语言和C++的不同之处和相通之处
- C语言实现头插法(链表)
- C语言常见函数重写
- HDU-5310-Souvenir(C++ && 简单数学题)