- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C实用教程[郑阿奇主编]17
第17章 string类和字符串流 17.1 string类概述 ANSI/ISO C++提供了类模板basic_string来处理ANSI C++字符串,并通过basic_string为char和wchar_t类型定义了两个实例字符串类string和wstring: typedef basic_stringchar string; typedef basic_stringwchar_t wstring; 分别用于单字节字符串和宽字节字符串操作 17.1.1 string类的构造函数和对象定义 [例Ex_StringObj] string对象的定义方式示例 #include iostream #include vector #include string using namespace std; typedef vectorchar CharVector ; int main() { char strArr[] = ABCDEF; // 用数组存放C语言风格字符串 const int NUM = sizeof(strArr) / sizeof(char); // 计算字符个数 CharVector v(strArr, strArr+NUM); // 向量构造 string s1, s2(123456); // 用C语言风格字符串构造string对象s2 couts2 = s2endl; string s3(s2); // 或string s3 = s2; couts3 = s3endl; string s4(strArr, 5); couts4 = s4endl; string s5(s2, 2, 3); couts5 = s5endl; string s6(6, a); couts6 = s6endl; string s7(v.begin(), v.end()); // 将容器中的序列构造成字符串序列 couts7 = s7endl; return 0; } 程序运行结果如下: 17.1.2 string类的属性函数 在string类中,用于属性操作的函数有:反映大小和字符串长度的size和length,反映字符串序列访问的at及访问子串的substr等 1. string类大小属性函数 string类提供了反映字符串长度或大小的成员函数 2. string类字符及字符序列访问属性函数 string类提供了访问字符串的字符和字符序列的成员函数 [例Ex_StringAcc] string属性函数操作示例。 #include iostream #include string using namespace std; void ShowAttr( string one ) { coutcapacity:one.capacity(), max_size:one.max_size() , size:one.size(), length:one.length()endl; } int main() { string s1(12345); couts1,; ShowAttr(s1); s1.resize( 10, A ); couts1 = s1endl; s1.at(6) = B; s1[7] = C; couts1 = s1endl; char strArr[] = { A, B, C, D, E, F }; string s2( strArr ); couts2,; ShowAttr(s2); const char *p = s2.data(); string s3(p); s3.resize(5); couts3,; ShowAttr(s3); couts3 = s3endl; return 0; } 程序运行结果如下: 17.2 string类常用操作函数 17.2.1 string类修改操作函数 1. 插入 insert函数 2. 添加 append函数 3. 复制、删除和交换 copy、erase和swap函数 4. 替换 replace函数 [例Ex_StringModi] string序列更改操作 #include iostream #include vector #include string using namespace std; typedef vectorchar CharVector ; int main() {
文档评论(0)