C++的String类及其成员函数和智能指针专题.docVIP

C++的String类及其成员函数和智能指针专题.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本文作者:黄邦勇帅 本文是学习C++的附加内容,主要介绍了C++中的string类的各种成员函数,及成员函数的功能与作用,是作为学习C++的参考使用的。 本文内容完全属于个人见解与参考文现的作者无关,其中难免有误解之处,望指出更正。 声明:禁止抄袭本文,若需要转载本文请注明转载的网址,或者注明转载自“黄邦勇帅”。 主要参考文献: 1、C++.Primer.Plus.第五版.中文版[美]StephenPrata著孙建春韦强译人民邮电出版社2005年5月 2、C++.Primer.Plus.第四版.中文版StanleyB.Lippman、BarbaraE.Moo著李师贤等译人民邮电出版社2006年3月 3、C++.Primer.Plus.第三版.中文版StanleyB.Lippman等著潘爱民张丽译中国电力出版社2002年5月 4、C++入门经典第三版[美]IvorHorton著李予敏译清华大学出版社2006年1月 5、C++参考大全第四版[美]HerbertSchidt著周志荣朱德芳于秀山等译电子工业出版社2003年9月 6、21天学通第四版C++[美]JesseLiberty著康博创作室译人民邮电出版社2002年3月 第20章string类 1、string类用于处理字符串,要使用string类需要包含string头文件。 2、注意string是一个类,它具有类的特性,也就是说string类有构造函数,有重载的操作符,有成员函数。string对象可以自动调整大小,但有一些限制,string对象有个最大允许的长度,该长度由string类的静态常量string::nops设定,通常是最大的unsignedint值,在vc++中被设为-1。 3、string类是模板类basic_strin类的char具体化版本,basic_string类的原型为:templatevclasscharT,classtraits=char_traitscharT,classAllocator=allocatorcharTclassbasic_string{....};对于string类具有预定义的具体化版本typedefbasic_stringcharstring;也就是说string是basic_string模板类的char具体化版本的别名。 4、string类的size_type类型,size_type是string中的配套类型,一般被定义为unsigned类型。可以使用限定名的方法来使用size_type类型,比如string::size_typea; 5、string类的构造函数:string类有6种形式的构造函数,string类是basic_string类的特化版本,因此他的构造函数就是basic_string模板类的char特化版本的构造函数,在这里我们省略掉其他复杂的形式,得到以下的string构造函数版本,具体的basic_string模板类的构造函数这里不讨论。 a、string(constchar*s);将string对象初始化为s指向的传统C字符串(即以空字符结束的字符串)。比如stringone(“hyong”);将string对象one用字符串hyong来初始化。这就意味着可以把char类型的数组转换为string对象,比如stringa;charb[]=”ldki”;则a=b;stringc=b;都是正确的。但不能将string对象的字符串转换为char类型的数组。 b、string(size_typen,charc);创建一个包含n个元素的对象,其中每个元素都被初始化为字符c。比如stringtwo(10,‘c);将string对象two初始化包含为十个字符c。这意味着不可以用单个字符来初始化string类型的对象,比如stringa=s;将发生错误。 c、string。;创建一个默认的string对象,长度为0。比如stringthree;即表示创建一个长度为0的字符串对象three。 d、string(conststringstr,size_typepos=0,size_typen=npos);将string对象初始化为string对象的字符串从pos开始到结尾的字符,或从pos开始的n个字符。 e、string(constchar*s,size_typen);将string对象初始化为s指向的传统C字符串中的前n个字符,即使超出了字符串 的范围,操作仍会进行。比如charall[]=,”hyong”;stringfive(all,5);表示用字符数组all的前5个字符来初始化string 对象fve。注意即使复制的长度超出了数组的长度,操作仍将进行,也就是说如果把5改为10的话,将导致5个无用的字符被复制到对象中。

文档评论(0)

zxj41231 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档