C++ String详解:从基础到高级操作

需积分: 35 4 下载量 170 浏览量 更新于2024-09-22 收藏 1.05MB DOC 举报
深入学习C++_String2.1版是一份全面的C++ string类型教程,旨在帮助学习者掌握C++标准库中的string类的各个方面。该文档详尽地介绍了C++ string的使用,包括: 1. **C++ string简介**:首先,概述了string类型在C++中的重要性和其作为字符序列容器的角色,用于处理文本数据。 2. **string的成员函数**:这部分涵盖了丰富的成员函数,如: - `append()`:用于追加字符或字符串到字符串尾部。 - `assign()`:用于设置字符串内容。 - `at()`:访问指定索引位置的字符。 - `c_str()`:获取以C风格表示的字符数组。 - `capacity()`:返回内存容量。 - `clear()`:清空字符串内容。 - `compare()`:比较两个字符串。 - `copy()`:复制字符串部分到另一个对象。 - `insert()`:在指定位置插入字符或子串。 - `length()`:获取字符串长度。 - `max_size()`:返回最大可能大小。 - `push_back()`:在末尾添加字符。 - `substr()`:提取子字符串。 - `swap()`:交换两个字符串的值。 - `reserve()`:预分配内存空间。 - `resize()`:调整字符串长度。 - `rfind()`:查找指定子串的最后出现位置。 - `size()`:获取字符串长度。 - `find()` 和相关函数:搜索子串的位置。 - `replace()`:替换子串。 - `get_allocator()`:获取内存分配器。 - `rbegin()` 和 `rend()`:提供双向迭代器。 3. **string的构造和重载运算符**:讲解如何创建字符串对象,以及如何通过运算符(如+、*等)进行字符串连接和复制。 4. **string与algorithm结合使用**:展示了如何利用C++标准库中的算法(如`remove()`, `unique()`, `sort()`, `search()`, `copy()`等)对字符串进行操作。 5. **string与宽字符字符串(wstring)**:介绍了宽字符类型及其在处理多语言文本时的应用,以及string与wstring之间的交互。 6. **string与C++流的集成**:展示了如何使用C++流(如iostream和fstream)与string进行输入输出操作。 7. **格式化字符串**:讨论了不同方法来格式化字符串,如C风格的方法、Boost库和stlsoft+fastformat等工具。 8. **string与Windows API(CString)的接口**:探讨了在Windows环境中,string与微软特定的字符字符串类型CString的兼容性。 通过这个教程,读者不仅可以了解string的基本用法,还能学习如何更高效、灵活地处理字符串数据,并将其与其他C++特性结合起来。对于深入理解C++编程,特别是字符串处理,这是一份不可或缺的参考资料。
2009-12-07 上传
目录 1 正文 4 一、 C++的string的使用 4 1.1 C++ string简介 4 1.2 string的成员 4 1.2.1 append 4 1.2.2 assign 5 1.2.3 at 5 1.2.4 begin 6 1.2.5 c_str 6 1.2.6 capacity 6 1.2.7 clear 7 1.2.8 compare 7 1.2.9 copy 7 1.2.10 _Copy_s 7 1.2.11 data 7 1.2.12 empty 7 1.2.13 end 7 1.2.14 erase 7 1.2.15 find 7 1.2.16 find_first_not_of 8 1.2.17 find_first_of 8 1.2.18 find_last_not_of 9 1.2.19 find_last_of 9 1.2.20 get_allocator 9 1.2.21 insert 9 1.2.22 length 9 1.2.23 max_size 9 1.2.24 push_back 9 1.2.25 rbegin 9 1.2.26 rend 9 1.2.27 replace 9 1.2.28 reserve 11 1.2.29 resize 12 1.2.30 rfind 12 1.2.31 size 12 1.2.32 substr 12 1.2.33 swap 12 1.3 string的构造 12 1.4 string的重载运算符 12 1.5 string与algorithm相结合的使用 13 1.5.1 string与remove 13 1.5.2 string与unique、sort 13 1.5.3 string与search 13 1.5.4 string和find、find_if 14 1.5.5 string与copy、copy_if 14 1.5.6 string与count、count_if 15 1.6 string与wstring 15 1.6.1 简介 15 1.6.2 wstring实例 15 1.6.3 wstring与控制台 16 1.6.4 string与wstring的相互转换 17 1.7 string与C++流 22 1.7.1 C++流简介 22 1.7.2 string与iostream、fstream 22 1.8 格式化字符串 23 1.8.1 简单常用的C方法 23 1.8.2 boost的方法 23 1.8.3 stlsoft + fastformat 23 1.9 string与CString 24 二、 boost字符串算法库 24 2.1 boost字符串算法库导论 24 2.1.1 boost.algorithm.string是什么? 24 2.1.2 相关 24 2.1.3 boost.range导论 24 2.1.4 boost.regex导论 24 2.1.5 boost.algorithm.string的DNA 24 2.2 boost字符串算法解密 24 2.2.1 修剪(trim.hpp) 24 2.2.2 转换(case_conv.hpp) 24 2.2.3 判断式、断言函数(predicate.hpp)【Predicates】 24 2.2.4 查找 24 2.2.5 删除和替换 24 2.2.6 分割和组合 24 2.2.7 分词 24 2.2.8 其它 24 三、 C字符串 24 3.1 C字符串常用算法 24 3.1.1 strcpy wcscpy 24 3.1.2 strcat wcscat 24 3.1.3 strchr wcschr 24 3.1.4 strcmp wcscmp 24 3.1.5 stricmp wcsicmp 24 3.1.6 strlen wcslen 24 3.1.7 strlwr/_strlwr wcslwr/_wcslwr 24 3.1.8 strncat wcsncat 24 3.1.9 strcspn wcscspn 24 3.1.10 strdup/_strdup wcsdup/_wcsdup 24 3.1.11 strncpy wcsncpy 24 3.1.12 strpbrk wcspbrk 24 3.1.13 strrev/_strrev wcsrev/_wcsrev 24 3.1.14 strset/_strset/_strset_l wcsset/_wcsset/_wcsset_l 24 3.1.15 strstr/wcsstr 24 3.1.16 strtok/wcstok 24 3.1.17 strupr/_strupr wcsupr/_wcsupr 24 3.2 更安全的C字符串函数 24 3.2.1 简述 24 3.2.2 简单实例 24 3.2.3 定制 24 3.2.4 兼容 24 3.3 通用字串函数 24 3.3.1 简述 24 3.3.2 简单实例 24 3.3.3 映射表 24 3.4 API级的字符串处理 24 3.4.1 简述 24 3.4.2 旧的API 24 3.4.3 Shell字符串函数 24 3.4.4 新的安全版字符串处理API 24 四、 c++字符串分词 24 4.1 简介 24 4.2 C库 24 4.3 C++ stringstream 24 4.4 boost字符串算法库的分词技术 24 4.4.1 泛型算法 24 4.4.2 迭代器 24 4.5 boost.tokenizer 24 4.5.1 组件 24 4.5.2 工具类解析 24 4.5.3 boost.tokenizer的缺陷 24 4.6 stlsoft::string_tokeniser 24 4.7 效率大PK 24 五、 C++字符串使用的建议 24 附录1:参考资料: 24 附录2: MSSTL中basic_string的部分源码解读 24 2.1 string的allocator 24 2.1.1 Allocate和Deallocate 24 2.1.2 allocator的泛型实现 24 2.1.3 string与char_traits 24 2.1.4 以char和wchar_t特化char_traits 24 附录3 TCHAR.h 映射表 24 日志: 24 1.0 版 24 1.1 版 24 1.2 版 24 2.0 版 24 2.1 版 24
2009-02-01 上传
目录 1 正文 3 一、 C++的string的使用 3 1.1 C++ string简介 3 1.2 string的成员 3 1.2.1 append 3 1.2.2 assign 4 1.2.3 at 4 1.2.4 begin 5 1.2.5 c_str 5 1.2.6 capacity 5 1.2.7 clear 6 1.2.8 compare 6 1.2.9 copy 6 1.2.10 _Copy_s 6 1.2.11 data 6 1.2.12 empty 6 1.2.13 end 6 1.2.14 erase 6 1.2.15 find 6 1.2.16 find_first_not_of 7 1.2.17 find_first_of 8 1.2.18 find_last_not_of 8 1.2.19 find_last_of 8 1.2.20 get_allocator 8 1.2.21 insert 8 1.2.22 length 8 1.2.23 max_size 8 1.2.24 push_back 8 1.2.25 rbegin 8 1.2.26 rend 8 1.2.27 replace 8 1.2.28 reserve 10 1.2.29 resize 11 1.2.30 rfind 11 1.2.31 size 11 1.2.32 substr 11 1.2.33 swap 11 1.3 string的构造 11 1.4 string的重载运算符 12 1.5 string与algorithm相结合的使用 12 1.5.1 string与remove 12 1.5.2 string与unique、sort 12 1.5.3 string与search 12 1.5.4 string和find、find_if 13 1.5.5 string与copy、copy_if 13 1.5.6 string与count、count_if 14 1.6 string与wstring 14 1.6.1 简介 14 1.6.2 wstring实例 15 1.6.3 wstring与控制台 15 1.6.4 string与wstring的相互转换 16 1.7 string与C++流 21 1.7.1 C++流简介 21 1.7.2 string与iostream、fstream 21 1.8 格式化字符串 22 1.8.1 简单常用的C方法 22 1.8.2 boost的方法 22 1.9 string与CString 23 二、 boost字符串算法库 23 2.1 boost字符串算法库导论 23 2.1.1 boost.algorithm.string是什么? 23 2.1.2 相关 23 2.1.3 boost.range导论 23 2.1.4 boost.regex导论 23 2.1.5 boost.algorithm.string的DNA 24 2.2 boost字符串算法解密 24 2.2.1 修剪(trim.hpp) 24 2.2.2 转换(case_conv.hpp) 26 2.2.3 判断式、断言函数(predicate.hpp)【Predicates】 27 2.2.4 查找 28 2.2.5 删除和替换 29 2.2.6 分割和组合 31 2.2.7 其它 32 三、 C字符串 32 3.1 C字符串常用算法 32 3.1.1 strcpy wcscpy 32 3.1.2 strcat wcscat 32 3.1.3 strchr wcschr 32 3.1.4 strcmp wcscmp 33 3.1.5 stricmp wcsicmp 33 3.1.6 strlen wcslen 33 3.1.7 strlwr/_strlwr wcslwr/_wcslwr 33 3.1.8 strncat wcsncat 33 3.1.9 strcspn wcscspn 33 3.1.10 strdup/_strdup wcsdup/_wcsdup 34 3.1.11 strncpy wcsncpy 34 3.1.12 strpbrk wcspbrk 35 3.1.13 strrev/_strrev wcsrev/_wcsrev 35 3.1.14 strset/_strset/_strset_l wcsset/_wcsset/_wcsset_l 35 3.1.15 strstr/wcsstr 35 3.1.16 strtok/wcstok 36 3.1.17 strupr/_strupr wcsupr/_wcsupr 36 3.2 更安全的C字符串函数 36 3.2.1 简述 36 3.2.2 简单实例 36 3.2.3 定制 38 3.2.4 兼容 41 3.3 通用字串函数 47 3.3.1 简述 47 3.3.2 简单实例 47 3.3.3 映射表 48 3.4 API级的字符串处理 48 3.4.1 简述 48 3.4.2 旧的API 48 3.4.3 Shell字符串函数 48 3.4.4 新的安全版字符串处理API 48 四、 C++字符串使用的建议 51 附录1:参考资料: 51 附录2: MSSTL中basic_string的部分源码解读 51 2.1 string的allocator 51 2.1.1 Allocate和Deallocate 51 2.1.2 allocator的泛型实现 52 2.1.3 string与char_traits 54 2.1.4 以char和wchar_t特化char_traits 56 附录3:Boost.Format中文文档 57 2.1 大纲 57 2.2 它是如何工作的 57 2.3语法 58 2.3.1 boost::format( format-string ) % arg1 % arg2 % ... % argN 58 2.3.2 printf 格式化规则 59 2.3.3 新的格式规则 60 附录4 TCHAR.h 映射表 60