预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C语言字符串C语言字符串在标准C中,是没有字符串变量的,但是有字符数组。而且标准C带有的标准库函数:string.h中包含了大量的字符串操作函数,当然如果必要的话,你也可以自己写代码实现这些函数的功能。以下是小编为大家搜索整理的C语言字符串,希望能给大家带来帮助!对于32位操作系统int(2字节)short(1字节)long(4字节)unsignedchar从0到256之间char从-128到127之间byte字节就是无符号的字符unicode:两字节的字符由此可见:byte=nusignedchar,short=charchar*:是指向ANSI字符数组的指针,其中每个字符占据8位(有效数据是除掉最高位的其他7位),这里保持了与传统的C,C++的兼容。TCHAR:在采用Unicode方式编译时是wchar_t,在普通时编译成char.如果定义_UNICODE,声明如:typedefwchar_tTCHAR;如果没有定义_UNICODE,则声明如:typedefcharTCHAR;LPSTR:是一个指向以‘’结尾的ANSI字符数组的指针,与char*可以互换使用,在win32中较多地使用LPSTR。LPTSTR和LPCTSTR:中的含义就是每个字符是这样的TCHAR。LPWSTR与LPCWSTR:类似于LPSTR与LPCSTR,只是字符数据是16位的wchar_t而不是char。LPCSTR:增加的‘C’的含义是“CONSTANT”(常量),表明这种数据类型的实例不能被使用它的API函数改变,除此之外,它与LPSTR是等同的。LPCTSTR:#ifdef_UNICODEtypedefconstwchar_t*LPCTSTR;#elsetypedefconstchar*LPCTSTR;#endifCString类,是由微软公司集成在VC的MFC里面,包含字符串各种常见操作的类。其源码可以在MFC里面找到。当声明一个字符串变量,首先会调用构造函数,在成功后,便可利用它的常见操作。CString是一个完全独立的类,动态的TCHAR数组,封装了+等操作符和字符串操作方法。1、ANSI(即MBCS):为多字节字符集,它是不定长表示世界文字的编码方式。2、Unicode:用两个字节表示一个字符的编码方式。MBCS宏对应的字符串指针为LPSTR,Unicode对应的指针为LPWSTR。LPSTR被定义成是一个指向以NULL(‘’)结尾的8位ANSI字符数组指针,而LPWSTR是一个指向以NULL结尾的16位双字节字符数组指针。为了写程序的方便,微软定义了类型LPTSTR,在MBCS下它表示LPSTR,在Unicode下它表示LPWSTR,这就可以重定义一个宏进行不同字符集的转换了。LPSTR:指向一个字符串的32位指针,每个字符占1个字节。LPCSTR:指向一个常量字符串的32位指针,每个字符占1个字节。LPTSTR:指向一个字符串的32位指针,每个字符可能占1个字节或2个字节。LPCTSTR:指向一个常量字符串的32位指针,每个字符可能占1个字节或2个字节。强制转换为UNICODE,应该是L。字符串(literalstring)前面的大写字母L,用于告诉编译器该字符串应该作为Unicode字符串来编译。当编译器将字符串置于程序的数据部分中时,它在每个字符之间分散插入零字节。#ifdef_UNICODE#define_TL#else#define_T#endifThesedata-typemappingsaredefinedinTCHAR.Handdependonwhethertheconstant_UNICODEor_MBCShasbeendefinedinyourprogram.当我们在利用CString类便捷性时,有些特殊化的东西无法做,于是相互之间的转换变经常被需要:在转换之前必须确保你的字符的范围在你的范围之内。1.CStirng转char*传给未分配内存的指针.CStringcstr1="ABCD";char*ch=cstr1.GetBuffer(cstr1.GetLength()+1);//获取指向CString最后一个字符的'地址。cstr1.ReleaseBuffer();注意:用完ch后,不用ch,因为这样会破坏cstr内部空间,容易造成程序崩溃.GetBuffer:这个函数是为一个CString对象重新获取其内部字符缓冲区的指针,返回的LPTSTR为非const的,从而允许直接修改CString中的内容!如果nMinBufLength比当前buffer大,那么就调用ReleaseBuffer函数去释放当前的Buffer,用一个被请求的大小去覆盖这个buffer.而GetBuffer则是返回一个可以供