当前位置:首页 » 《关注互联网》 » 正文

C++ -- string函数的使用(三)

6 人参与  2024年12月28日 08:01  分类 : 《关注互联网》  评论

点击全文阅读


目录

push_back和appendinserterasereplacesubstrfindrfind<< 和 >>operator+operator +=geline

string中比较常用的是operator[],+=,遍历和迭代器

push_back和append

在这里插入图片描述

push_back:尾插一个字符
append:尾插一个string对象或者是常量字符串

在这里插入图片描述

int main(){    string s("hello world");    s.push_back('x); // hello worldx    s.append("yyy");// hello worldyyy        return 0;} 

insert

在这里插入图片描述

insert(0,“hello world”):第一个参数表示0位置,第二个参数表示插入的字符串
insert(0,1,ch):参数一:下标,参数二:插入字符的个数,参数三:要插入的字符
insert(s.begin(),ch):迭代器区间的头插

int main(){    string s("hello world");   s.insert(0,"hello r");// hello rhello world   s.insert(10,"zzz");// hello worlzzzd       // 插入单个字符  char ch = 'a';  s.insert(0, 1,ch);// ahello world  s.insert(s.begin(), ch);// aahello world  // 在10下标位置插入p  s.insert(0, "p");  s.insert(s.begin(), ch);    cout << s << endl;      return 0;}

erase

在这里插入图片描述

erase:删除字符

int main(){   string s("hello world");   s.erase(0,1);   // 0下标位置,删除字符的个数   s.erase(s.begin());   // 迭代器的头删   s.erase(6,1);   // 在6下标位置删除一个字符   s.erase(6);   // 不给要删除的长度,后面全删除   s.erase(--s.end());   // 尾删   s.erase(s.size()-1,1);   // 尾删   s.erase(0,4);   // 0下标位置删除4个字符      return 0;}

replace

在这里插入图片描述

replace:替换

int main(){   string s("hello world");   s.replace(5,1,"%%");   // 第5个下标位置,一个字符,替换的字符   // 将一个空格替换位%%      return 0;}

substr

在这里插入图片描述

substr:取字符串的子串

int main(){    string s("hello world");   s.substr(0,5);// hello    // 取下标位0到4的字符   s.substr(0);   // 从下标位0开始取到字符串结束      return 0;}

find

在这里插入图片描述

find:正着找查找string/字符串/字符返回其开始的下标(并且是第一次找到的位置)

int main(){   string s("test.cpp");   size_t pos = s.find('.');   string suffix = s.substr(pos);// .cpp   // 如果不给长度的话,从pos位置开始取字符知道字符串结束      return 0;}

rfind

在这里插入图片描述

rfind:倒着找查找string/字符串/字符返回其开始的下标(并且是第一次找到的位置)

rfind('.');// 倒着找第一个返回find('.');// 正着找第一个返回

windows:
Linux:/
\:对 \ 转义为 \

<< 和 >>

<< 和 >> 重载之后才能使用string中重载过了

operator+

在这里插入图片描述

为什么要重载成全局的呢?为什么不重载为成员函数?
因为成员函数中第一个参数的位置被this指针占据,是类类的指针*const
运算符重载的成员函数要求第一个参数是类类型的参数

string + stringstring + const char*const char* + stringstring + charchar + string

operator +=

在这里插入图片描述

operator += :相当于push_back,在字符串的末尾插入一个字符或者是一个字符串或常量字符串

geline

在这里插入图片描述

getline:默认遇到 \n 就结束,遇到空格不会结束,但是也可以自己设置结束的标识符比如是 *
cin 和scanf:只能提取一个字符串,遇到 \n 或空格就结束

string str;getline(cin,str);getline(cin,str,终止符);// 终止符比如可以是:'*'// str是你输入的字符串

输入是hello world
输出也是hello world
在这里插入图片描述


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/208037.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 宫抉,宫以沫小说(重生霸宠:摄政王爷太凶猛)TXT无套路在线+无广告结局
  • 公司商务宴,实习生私下把菜品换成了草莓绵绵冰附加完整在线阅读(杜瑞,潘望望)最近更新列表
  • 结婚当天未婚妻与男闺蜜热吻,殊不知我是豪门阔少惊天黑幕_沈舒韩斌林殊虐心反转_小说后续在线阅读_无删减免费完结_
  • 沈锦殊(宠妾灭妻?虐渣高嫁我被权宠天下)前文+全本完整阅读预售作品抢先看
  • 独家周屿,林小柔,江宇城小说小说大结局(重生后,我冷眼看未婚夫小秘书给甲方爸爸送盗版labubu)全篇在线下载阅读
  • 重生后,我送渣男下地狱见阎罗王续集_苏景琛笑笑老太太听书_小说后续在线阅读_无删减免费完结_
  • 一百,解释,油漆小说(高考过后,我给擦边男主播刷了一百万)TXT无套路在线+无广告结局
  • 掏空我后,全家逼我卖婚房未删减_妹妹宝马老公番茄热门_小说后续在线阅读_无删减免费完结_
  • 纪君范,亓霏霏小说完本章节前文+全篇阅读(被小三的反击战)连载中
  • 陈春花,池言(重生后,摆脱吸血鬼老公一家)前文+全本完整阅读预售作品抢先看
  • 错认皇太女后,三个皇夫悔疯了后续结局_春桃长青魏昭看点十足_小说后续在线阅读_无删减免费完结_
  • (重生后,恶毒女配拿稳白月光剧本)江朝华燕景最终篇章(江朝华燕景)全书在线无广告高口碑小说

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1