string和CString

string和CString

ID:39468502

大小:59.00 KB

页数:11页

时间:2019-07-04

string和CString_第1页
string和CString_第2页
string和CString_第3页
string和CString_第4页
string和CString_第5页
资源描述:

《string和CString》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、(一)概述string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;CString(typedefCStringT>CString)为VisualC++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode),TCHAR(ANSI与unicode均可);char*为C编程中最常用的字符串指针,一般以’’为结束标志;(二)构造²string是方便的,可以从几乎所有的

2、字符串构造而来,包括CString和char*;²CString次之,可以从基本的一些字符串变量构造而来,包括char*等;²char*没有构造函数,仅可以赋值;²举例:char*psz=“joise”;CStringcstr(psz);stringstr(cstr);(三)运算符重载a)operator=²string是最方便的,几乎可以直接用所有的字符串赋值,包括CString和char*;²CString次之,可以直接用些基本的字符串赋值,包括char*等;²char*只能由指针赋值,并且是极危险的操作,建议使用strcpy或者memcpy,而且char*在声明的时候如未赋初值

3、建议先设为NULL,以避免野指针,令你抓狂;²举例:char*psz=NULL;psz=newchar[10];//当然,以上的直接写成char*psz=newchar[10];也是一样memset(psz,0,10);strcpy(psz,“joise”);CStringcstr;cstr=psz;stringstr;str=psz;str=cstr;delete[]psz;b)operator+²string与CString差不多,可以直接与char*进行加法,但不可以相互使用+运算符,即stringstr=str+cstr是非法的,须转换成char*;²char*没有+运算,只

4、能使用strcat把两个指针连在一起;²举例:char*psz=“joise”;CStringcstr=psz;cstr=cstr+psz;stringstr=psz;str=str+str+psz;strcat(psz,psz);strcat(psz,cstr);//合法strcat(psz,str);//非法,由此可见,CString可自动转换为constchar*,而string不行c)operator+=²string是最强大的,几乎可以与所有的字符串变量+=,包括CString和char*;²CString次之,可以与基本的一些字符串变量进行+=而来,包括char*等;²c

5、har*没有+=运算符,只能使用strcat把两个指针连在一起;d)operator[]²CString最好,当越界时会抛出断言异常;²string与char*下标越界结果未定义;²举例:char*psz=“joise”;CStringcstr=psz;cout<、operator<、operator>=、perator<=²CString与string之间不可以进行比较,但均可以与char*进行比较,并且比较的是值,而不

6、是地址;cout<<(psz==cstr);cout<<(psz==str);cout<<(str==psz);cout<<(cstr==psz);//以上代码返回均为1(四)常用算法a)查找作用char*stringCString查找指定值strchrstrstrstrrstrstrspnfindFind第一个匹配的值fild_first_ofFindOneOf从后面开始查找ReserveFind指定匹配方式find_if注:find_if中是把范围内的值挨个代入匹配函数直至返回trueb)比较作用char*stringCString查找指定值(区分大小写)strcmpstrncm

7、pstrcoll_strncolloperatoroperator<=operator>=operator==operator!=CollateCompare查找指定值(不区分大小写)_stricmp_strnicmp_stricoll_strnicollCollateNoCaseCompareNoCase注:返回值如果<0则前面的值小于后面的值,反之亦然c)替换作用char*stringCString查找指定值_strset_strn

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。