设为首页 加入收藏

TOP

不要小看字符串
2014-11-23 20:06:40 】 浏览:5234
Tags:不要 小看 字符串

  字符串非常非常常见又重要,而且还有那么多名堂在里面


  字符串:


  在标准C中,是没有字符串变量的,但是有字符数组。而且标准C带有的标准库函数:string.h中包含了大量的字符串操作函数,当然如果必要的话,你也可以自己写代码实现这些函数的功能。我认为即便C语言再简单,即便这些知识看起来是多么枯燥和简单,依然有必要回顾并牢记它们:


  对于32位操作系统


  int (2字节) short (1字节) long(4字节)


  unsigned char 从0到256之间


  char 从-128到127之间


  byte 字节就是无符号的字符


  unicode:两字节的字符


  由此可见:byte=nusigned char, short=char


  char* :是指向ANSI字符数组的指针,其中每个字符占据8位(有效数据是除掉最高位的其他7位),这里保持了与传统的C,C++的兼容。


  TCHAR: 在采用Unicode方式编译时是wchar_t,在普通时编译成char. 如果定义_UNICODE,声明如 :typedef wchar_t TCHAR; 如果没有定义_UNICODE,则声明如:typedef char TCHAR;


  LPSTR: 是一个指向以‘\0’结尾的ANSI字符数组的指针,与char*可以互换使用,在win32中较多地使用LPSTR。


  LPTSTR和LPCTSTR:中的含义就是每个字符是这样的TCHAR。


  LPWSTR与LPCWSTR:类似于LPSTR与LPCSTR,只是字符数据是16位的wchar_t而不是char。


  LPCSTR: 增加的‘C’的含义是“CONSTANT”(常量),表明这种数据类型的实例不能被使用它的API函数改变,除此之外,它与LPSTR是等同的。


  LPCTSTR:


  #ifdef _UNICODE


  typedef const wchar_t * LPCTSTR;


  #else


  typedef const char * LPCTSTR;


  #endif


  CString类, 是由微软公司集成在VC的MFC里面,包含字符串各种常见操作的类。其源码可以在MFC里面找到。


  当声明一个字符串变量,首先会调用构造函数,在成功后,便可利用它的常见操作。


  CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。


  1、ANSI(即MBCS):为多字节字符集,它是不定长表示世界文字的编码方式。


  2、Unicode:用两个字节表示一个字符的编码方式。


  MBCS宏对应的字符串指针为LPSTR,Unicode对应的指针为LPWSTR。LPSTR被定义成是一个指向以NULL(‘\0’)结尾的8位ANSI字符数组指针,而LPWSTR是一个指向以NULL结尾的16位双字节字符数组指针。


  为了写程序的方便,微软定义了类型LPTSTR,在MBCS下它表示LPSTR,在Unicode下它表示LPWSTR,这就可以重定义一个宏进行不同字符集的转换了。


  LP STR:指向一个字符串的32位指针,每个字符占1个字节。


  LPC STR:指向一个常量字符串的32位指针,每个字符占1个字节。


  LP TSTR:指向一个字符串的32位指针,每个字符可能占1个字节或2个字节。


  LPC TSTR:指向一个常量字符串的32位指针,每个字符可能占1个字节或2个字节。


  强制转换为UNICODE,应该是L。字符串(literal string)前面的大写字母L,用于告诉编译器该字符串应该作为U n i c o d e字符


  串来编译。当编译器将字符串置于程序的数据部分中时,它在每个字符之间分散插入零字节。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言基础:伪随机数 下一篇基本TCP套接字编程

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目