上海企业网站建设,游戏网站服务器租用,大连招标投标信息网,黄石做网站公司#x1f389;个人名片#xff1a; #x1f43c;作者简介#xff1a;一名乐于分享在学习道路上收获的大二在校生#x1f43b;❄个人主页#x1f389;#xff1a;GOTXX #x1f43c;个人WeChat#xff1a;ILXOXVJE#x1f43c;本文由GOTXX原创#xff0c;首发CSDN个人名片 作者简介一名乐于分享在学习道路上收获的大二在校生❄个人主页GOTXX 个人WeChatILXOXVJE本文由GOTXX原创首发CSDN系列专栏零基础学习C语言----- 数据结构的学习之路每日一句如果没有特别幸运那就请特别努力———————————————— 文章简介 本篇文章对 Cstring类的介绍及常用函数用法总结 学习的相关知识进行分享 如果您觉得文章不错期待你的一键三连哦你的鼓励是我创作动力的源泉让我们一起加油一起奔跑让我们顶峰相见 目录
一.strng类的介绍
二.string类常用函数及用法
1.string类对象常见的构造
2.string类对象的容量操作
3. string类对象的访问及遍历操作
4.string类对象的修改操作 一.strng类的介绍 简单的说 string是表示字符串的字符串类类里面提供了许多对字符串操作的函数 string在底层实际是basic_string模板类的别名typedef basic_stringchar, char_traits, allocator string; 其中 注意 在使用string类时必须包含#include头文件以及using namespace std; 二.string类常用函数及用法 1.string类对象常见的构造 (1) string
功能构造一个长度大小为0的空字符串
【例子】 2stringconst char* s
功能构造一个用字符串s初始化的字符串
【例子】 3stringconst string str
功能用字符串str拷贝构造一个字符串
【例子】 4stringsize_t nchar c
功能构造一个用n个字符c初始化的字符串
【例子】 2.string类对象的容量操作 (1)size ( )
功能返回字符串有效字符长度
【例子】 2length( )
功能和size一样返回字符串有效字符的长度
【例子】 (3)capicity( )
功能返回字符串总空间的大小 注意编译器不同得出得值不同
【例子】 4empty( )
功能检测字符串是否为空
【例子】 (5)clear( )
功能清空字符串中得有效字符清空但不会影响
注意clear只是将有效字符清空但不会影响底层总空间的大小
【例子】 6reserve (size_t n) 功能为string预留空间不改变有效元素个数如下例一,当reserve的参数小于string的底层空间总大小时reserver不会改变容量大小(如下例二),只影响容量不影响数据 ;
注意当使用reverse要扩容到某个值时实际中编译器不一定会扩容到指定值可能会多扩容点不同的编译器结果不同
【例一】 【例二】 7 void resize (size_t n) void resize (size_t n, char c)
功能将字符串有效长度改为N个,不同的是当字符个数增多时resize(n) 用 /0 来填充多出的元素空间如下例一resize(size_t n, char c)用字符 c 来填充多出的元素空间如下例二;
注意resize在改变元素个数时如果是将元素个数增多可能会改变底层容量的大小如果是将元素个数减少底层空间总大小不变;
【例一】 【例二】 3. string类对象的访问及遍历操作 下标遍历
1operator[] char operator[] (size_t pos); //可读可改 例一
const char operator[] (size_t pos) const; //只读不能改 例二
功能类似于数组下标访问
其中下标[ ]只适用于部分容器底层物理空间具有一定连续性的链式结构
例一 【例二】 迭代器遍历 正向迭代器iterator
2begin 返回指向第一个字符的迭代器 iterator begin(); //可读可写
const_iterator begin() const; //只读不能写 【如例二】 end 返回指向最后一个字符下一个字符的迭代器 iterator end();
const_iterator end() const;
注意迭代器适用于所以容器迭代器才是容器遍历的主流形式
【例一】 【例二】 迭代器倒序遍历 反向迭代器severse_itreator
3rbegin 返回指向字符串最后一个字符即其反向开头的反向迭代器 rend 返回指向字符串第一个字符即其反向结尾的反向迭代器
【例子】 注意匹配使用 const_iterator it 本质保护迭代器指向的内容不能修改;const iterator it 是迭代器本身不能被修改; 在使用迭代器遍历时迭代器本身是要修改的 ; (3) 范围for遍历
【例子】 4.string类对象的修改操作 1push_back(char c)
功能在字符串后面尾插一个字符c
【例子】 (2)pop_back()
功能尾删一个字符
【例子】 3append
功能在字符串后面追加一个字符串 【例子】 运行结果 (4)operator 功能在后面追加字符串str追加一个字符追加string对象
【例子】 5findnpos 功能从字符串pos位置开始往后找字符c返回该字符在字符串中的位置,如果没有找到就返回npos注意npos是string类域里面的使用时需要指定类域【例二】 如果后面不加起始寻找的位置坐标则默认是从0开始 【例一】 【例二】 6rfind 功能从字符串pos位置开始往前找字符c返回该字符在字符串中的位置
其中每个使用方法和find一样只是是从后往前找
【例子】 7substr() 功能在str中从pos位置开始截取len个字符然后将其返回当不传入len参数时默认全部截取
【例子】 (8) c_str 功能返回C格式字符串 【例子】 (9)erase 功能从pos位置开始删除len个字符 【例子】 10insert() 功能在pos位置插入字符或字符串
【例子】