C++ String深度解析与实战

3星 · 超过75%的资源 需积分: 0 6 下载量 27 浏览量 更新于2024-07-31 收藏 1.09MB PDF 举报
"深入学习C++ String2.1版 - 董波" 深入学习C++中的String类是理解和掌握C++编程的关键部分。这个资源详细介绍了C++标准库中的`std::string`类型,提供了丰富的函数示例,帮助开发者更好地运用这一强大的文本处理工具。 1. C++的string的使用 `std::string`是C++中的一个非常重要的容器,用于存储和操作字符串。它提供了许多成员函数来实现字符串的各种操作。 2. C++string简介 C++的`std::string`是一个类模板,它代表可变长度的字符序列。相比于C语言中的C风格字符串,`std::string`更加安全,因为它自动管理内存并避免了常见的缓冲区溢出问题。 3. string的成员 - `append`: 追加字符串到现有的字符串末尾。 - `assign`: 用新的字符串替换现有的内容。 - `at`: 安全访问字符串中的特定字符。 - `begin`和`end`: 返回字符串的迭代器,分别指向首字符和超出字符串范围的后一个位置。 - `c_str`和`data`: 获取以空字符结尾的C风格字符串指针。 - `capacity`: 返回当前字符串能容纳的字符数量,不包括结束的空字符。 - `clear`: 清空字符串。 - `compare`: 比较两个字符串。 - `copy`: 复制字符串的一部分到指定位置。 - `empty`: 检查字符串是否为空。 - `erase`: 删除字符串中的一段字符。 - `find`: 在字符串中查找子串的位置。 - `find_first_not_of`, `find_first_of`, `find_last_not_of`, `find_last_of`: 查找特定字符或子串的第一个或最后一个出现。 - `get_allocator`: 返回字符串的分配器。 - `insert`: 在字符串的指定位置插入新的字符或字符串。 - `length`和`size`: 返回字符串的长度(不包括结束的空字符)。 - `max_size`: 返回理论上的最大字符串长度。 - `push_back`: 在字符串末尾添加一个字符。 - `rbegin`和`rend`: 返回反向迭代器,对应于`begin`和`end`。 - `replace`: 替换字符串中的一部分。 - `reserve`: 预分配内存,确保字符串可以容纳指定数量的字符。 - `resize`: 改变字符串的长度,可能填充默认字符。 - `rfind`: 从后向前查找子串的位置。 - `swap`: 交换两个字符串的内容。 4. string的构造 `std::string`可以通过不同的方式构造,例如传递字符数组、其他字符串或者初始字符列表。 5. string的重载运算符 `std::string`支持多种运算符重载,如`+`用于连接字符串,`=`用于赋值,`[]`用于访问单个字符,以及比较运算符等。 6. string与algorithm结合的使用 `std::string`可以与C++标准库中的`<algorithm>`头文件中的函数很好地配合,如`remove`去除重复字符,`unique`和`sort`对字符串进行排序和去重,`search`在字符串中查找模式,以及`find`、`find_if`等查找特定字符或满足条件的子串。此外,还可以使用`copy`和`copy_if`将字符串的部分内容复制到其他位置。 通过这份深入学习资料,开发者可以全面了解和熟练运用C++中的`std::string`,从而在实际编程中更加高效地处理文本数据。
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