C++对于字符串string操作的总结

C++字符串string操作的总结
参考:https://www.cnblogs.com/OctopuSS/p/14283129.html

1.构建string对象方法

string s;//生成一个空字符串s
string s(s2);//拷贝构造函数 生成s2的复制品
string s("value");//用字符串value初始化s
string s(n,'c');//生成一个字符串,包含n个c字符
string s(b,e);//以区间b,e内的字符作为字符串s的初值
string s(cp,n);//取字符数组,前n个字符作初值
string s(s2,pos2);//将字符串s2"始于位置pos2"部分当作字符串的初值
string s(s2,pos1,len);//将字符串s2内"始于pos1且长度最多len"的部分作为字符串的初值
s.~string();//销毁所有字符,释放内存

2.修改string对象的方法

与容器共有的string操作

s.insert(p,t);//在迭代器p指向的元素之前插入一个值为t的新元素,返回指向新插入元素的迭代器
s.insert(p,n,t);//在迭代器p指向的元素之前插入n个值为t的新元素
s.insert(p,b,e);//在迭代器p指向的元素之前插入迭代器b和e标记范围内所有的元素。返回void
s.assign(b,e);//在迭代器b和e标记范围内的元素替换s。对于string类型,该操作返回s;对于容器类型,则返回void
s.assign(n,t);//用值为t的n个副本替换s。对于string类型,该操作返回s;对于容器类型,则返回void
s.erase(p);//删除迭代器p指向的元素。返回一个迭代器,指向被删除元素后面的元素
s.erase(b,e);//删除迭代器b和e标记范围内所有的元素。返回一个迭代器,指向被删除元素段后面的第一个元素

3.string类型特有的版本
string以数组的形式存储,可以用数组的下标进行修改操作:

s.insert(pos,n,c);//在下标pos的元素之前插入n个字符c
s.insert(pos,s2);//在下标pos的元素之前插入string对象s2
s.insert(pos,s1,pos2,len);//在下标为pos的元素之前插入s2中从下标pos2开始的len个字符
s.insert(pos,cp,len);//在下标为pos的元素之前插入cp所指向数组的前len个字符
s.insert(pos,cp);//在下标为pos的元素之前插入cp所指向的以空字符结束的字符串副本
s.assign(s2);//用s2的副本替换s
s.assign(s2,pos2,len);//用s2中从下标pos2开始的len个字符替换s
s.assign(cp,len);//用cp所指向数组的前len个字符副本替换s
s.assign(cp);//用cp所指向的以空字符结束的字符串替换s
s.erase(pos,len);//删除下标pos开始的len个字符

4.string类型的查找

s.find(args);//在s中查找args的第一次出现
s.rfind(args);//在s中查找args的最后一次出现
s.find_first_of(args);//在s中查找args的任意字符的第一次出现
s.find_last_of(args);//在s中查找args的任意字符的最后一次出现
s.find_first_not_of(args);//在s中查找第一个不属于args的字符
s.find_last_not_of(args);//在s中查找最后一个不属于args的字符

5.string对象的比较

str1.compare(str2)==0;//字符串比较
str1.compare(3,4,str2)==0;//str1的子串(从索引3开始,包含4个字符)与str2进行比较
str1.compare(3,4,str2,3,4)==0;//str1指定子串与str2指定子串进行比较
str1.compare(0,2,"hi,hello",2)==0;//str1指定子串与字符串的前n个字符进行比较
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奇树谦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值