C++ string详解:2.0版核心成员与操作

5星 · 超过95%的资源 需积分: 4 10 下载量 193 浏览量 更新于2024-12-03 收藏 733KB PDF 举报
《C++string深入详解2[1].0版》是一本专注于C++标准库中的string类的详细指南。作者董波分享了他的专业知识,该书主要分为以下几个部分: 1. **C++ string的概述**: - 引入了string类的基础概念,包括它是如何在C++中处理文本数据的基本类型,以及它相对于C风格字符串数组(如char*)的优势。 2. **string的成员函数**: - 提供了一系列核心操作函数,例如`append`用于追加字符串,`assign`用于设置整个字符串,`at`用于访问特定索引的字符。 - `begin`和`end`用于获取迭代器以遍历字符串,`c_str()`返回指向const char*的指针,`capacity`返回当前存储空间大小,`clear()`清除所有元素,`compare`用于比较两个字符串。 - `copy`用于复制字符串,`_Copy_s`可能是特定版本的内联函数,`data`返回指向存储字符的内存地址,`empty()`检查字符串是否为空,`erase`删除指定位置或范围的字符,`find`和其变体(如`find_first_not_of`、`find_first_of`等)用于查找子串。 - `get_allocator`获取字符串的内存分配器,`insert`用于在指定位置插入字符或子串,`length`获取字符串长度,`max_size`给出最大可能的容量,`push_back`添加单个字符到末尾,`rbegin`和`rend`提供逆向迭代。 - `replace`替换子串,`reserve`预分配内存空间,`resize`调整字符串大小,`rfind`寻找最后一次出现子串的位置,`size`同`length`,`substr`提取子串,`swap`交换两个字符串的内容。 3. **string的构造方法**: - 讨论了如何通过不同方式创建string对象,如初始化、拷贝构造、赋值等。 4. **string的重载运算符**: - 解释了如何使用字符串的加法、赋值等运算符,如"+"、"=",以及它们在处理字符串时的行为。 5. **string与algorithm的结合**: - 展示了如何利用C++标准库中的`remove`、`unique`、`sort`和`search`等算法对字符串进行操作,如移除重复元素、排序、查找子串等。 这本书详细介绍了C++ string类的各个方面,旨在帮助读者深入理解并熟练运用这一重要的字符串处理工具。对于C++程序员来说,无论是在日常开发还是面试准备中,这都是一份宝贵的参考资料。
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