当前位置: 首页 > news >正文

海南工程建设资料备案网站注销备案号 网站

海南工程建设资料备案网站,注销备案号 网站,重庆网站建设公司推荐,南宁企业网站建设目录 🚀0.前言 🚈1.string 构造函数 🚝1.1string构造函数 🚝1.2string拷贝构造函数 🚈2.string类的使用 🚝2.1.查询元素个数或空间 返回字符串中有效字符的个数:size lenth 返回字符串目…

目录

🚀0.前言

🚈1.string 构造函数

🚝1.1string构造函数

🚝1.2string拷贝构造函数

🚈2.string类的使用

🚝2.1.查询元素个数或空间

返回字符串中有效字符的个数:size lenth

返回字符串目前所占的空间:capacity  

检验有效字符个数是否为零:empty  

 🚝2.2对字符串容量操作

为字符串预留空间:reserve

将有效字符的个数该成n个,多出的空间用字符c填充:resize

  清空有效字符:clear

🚝2.3string类对象的访问及遍历操作

 2.3.1 [ ]访问

 2.3.2迭代器

 2.3.3反向迭代器

🚈3.增删查改等

🚝3.1增

在字符串后尾插字符c:push_back

 在字符串后追加一个字符串:append

 在字符串后追加字符串str(真香):operator+=

​编辑 插入:insert

 🚝3.2删

 在字符串后尾删除字符:pop_back

 在某处删除:erase

 🚝3.3查

从字符串pos位置开始往后找字符c,返回该字符在字符串中的位置:find

 从字符串pos位置开始往前找字符c,返回该字符在字符串中的位置:rfind

 🚝3.4改

 🚈4.其他

返回C格式字符串:c_str

在str中从pos位置开始,截取n个字符,然后将其返回:substr

​编辑

​编辑获取一行字符串:getline 

💎7.结束语


🚀0.前言

言C++之言,聊C++之识,以C++会友,共向远方。各位博友的各位你们好啊,这里是持续分享C++知识的小赵同学,今天要分享的C++知识是string ,在这一章,小赵将会向大家聊聊C++的string知识 。✊

🚈1.string 构造函数

🚝1.1string构造函数

 我们通过查阅网站得到string构造函数如上,我们主要使用的构造函数是下面这几个

string str1;//空字符串
cout << str1 << endl;
string str2("i love you");//直接传入字符串构造
cout << str2 << endl;
string str3(str2.begin(), str2.end());//利用迭代器去构造
cout << str3;

这三种构造方式都是相当不错的。这里我们可以通过底层看看string内部是如何去构造的;

 我们通过查看它的底层发现它好像就是一个动态数组,那么我们能不能这么用呢?当然是可以的。

 那么这个可以说是非常爽的了。

🚝1.2string拷贝构造函数

 这个我们用起来应该是相当熟悉了。

🚈2.string类的使用

🚝2.1.查询元素个数或空间

返回字符串中有效字符的个数:size lenth

	string str1("1024");cout << str1.size() << endl;//返回有效字符个数cout << str1.length() << endl;//返回有效字符个数

返回字符串目前所占的空间:capacity  

	cout << str1.capacity();//返回字符串目前所占的空间; 

为什么这里的空间和有效字符不一样呢?主要因为其实就和我们之前队列一样,str在最开始的时候也进行了开空间操作,而当里面的字符快要填满时会进行扩容操作。(这个在实现string时候我们还会讲) 

检验有效字符个数是否为零:empty  

需要注意的是这里指的是有效字符个数而不是所占空间

 🚝2.2对字符串容量操作

为字符串预留空间:reserve

	string s;cout << s.capacity() << endl;s.reserve(20);//告诉扩容函数我要放20个字符,你的不够用了,就快点扩容cout << s.capacity() << endl;

当然如果你输入的值小于当前空间一般是不会进行扩容的 。

将有效字符的个数该成n个,多出的空间用字符c填充:resize

	string s;s.resize(10);//将有效字符的个数该成10个,多出的空间用字符'\0'填充cout << s << endl;s.resize(20, 'a');//将有效字符的个数该成20个,多出的空间用字符'a'填充cout << s<<endl;

 这个函数其实内部也有开空间的函数(可能就是reverse),所以当你的字符大于目前的空间时候会给你扩容,然后填上。

resize(size_t n) 与 resize(size_t n, char c)都是将字符串中有效字符个数改变到n个,不同的是当字 符个数增多时:resize(n)用0来填充多出的元素空间,resize(size_t n, char c)用字符c来填充多出的 元素空间。注意:resize在改变元素个数时,如果是将元素个数增多,可能会改变底层容量的大 小,如果是将元素个数减少,底层空间总大小不变。  

  清空有效字符:clear

s.clear();//清空有效字符
cout << s.size();

需要注意的是这里只清理字符,不会缩减空间。

🚝2.3string类对象的访问及遍历操作

 2.3.1 [ ]访问

这个访问方式也是我们前面试过的,和数组一样就很爽。

 2.3.2迭代器

迭代器这里,我们可以当成指针一样先用着,等到实现的时候,我们就会知道里面是什么了。

	string::iterator it = s.begin();//这里要指定谁的迭代器while (it != s.end()){cout << *it;it++;}

 2.3.3反向迭代器

方向迭代器与正向迭代器相反。rbegin对应的就是end.

🚈3.增删查改等

🚝3.1增

在字符串后尾插字符c:push_back

	string s;s.push_back('a');//在结尾添加字符'a'cout << s;

 在字符串后追加一个字符串:append

虽然它的实现很多但是我们一般用的也就只有第一个也就是我圈红的那个。

	string s("hello");s.append(" 1024");cout << s << endl;

 在字符串后追加字符串str(真香):operator+=

这个是真香重载了+=使用非常爽。

	string s("hello ");s += "1024";cout << s<<endl;s += ' i';cout << s << endl;

 插入:insert

 插入我们也是非常熟悉了,以前就有

 我个人主要用的就是这一个,给位置插入;(其他的大家可以自己尝试去探索下)

	s.insert(0, "你好");cout << s << endl;

 🚝3.2删

 在字符串后尾删除字符:pop_back

	s.pop_back();//删除尾部字符cout << s << endl;

 在某处删除:erase

 这里我们也主要用第一个

	s.erase(0, 5);//从0位置开始删5个字符cout << s << endl;

 🚝3.3查

从字符串pos位置开始往后找字符c,返回该字符在字符串中的位置:find

 

	string s("abbba");size_t a=s.find("bb", 2);//从2位置开始向后找cout << a << endl;size_t b=s.find('a');//用缺省参数,即从0位置开始向后找cout << b<<endl;size_t c = s.find('a',3);cout << c;

 从字符串pos位置开始往前找字符c,返回该字符在字符串中的位置:rfind

npos即默认最后一个字符位置 

	string s("abbba");size_t b=s.rfind('a');//默认从最后一个位置向前找cout << b << endl;size_t c = s.rfind('a',2);//从2位置向前找cout << c << endl;

 🚝3.4改

其实改的话很简单就用我们之前的【】就行了,很香。

 

 🚈4.其他

返回C格式字符串:c_str

 

在str中从pos位置开始,截取n个字符,然后将其返回:substr

	string a = s.substr(2, 3);//从2位置开始拷贝3个字符,组成字符串返回cout << a<<endl;cout << s;

获取一行字符串:getline 

这个还是比较重要的,比如我们要读取的字符串中有空格就可以用这个。

大家可以先像我这样用着,这里的输入流参数(istream)到后面我们会说。

💎7.结束语

好了小赵今天的分享就到这里了,如果大家有什么不明白的地方可以在小赵的下方留言哦,同时如果小赵的博客中有什么地方不对也希望得到大家的指点,谢谢各位家人们的支持。你们的支持是小赵创作的动力,加油。

如果觉得文章对你有帮助的话,还请点赞,关注,收藏支持小赵,如有不足还请指点,方便小赵及时改正,感谢大家支持!!!

http://www.yayakq.cn/news/998289/

相关文章:

  • 有什么设计网站做自己的网站后台
  • 如何网站里做照片网站建设相关专业
  • 顶呱呱网站建设是外包的吗博客和网站的区别
  • 嘉兴高端网站定制网站怎么添加广告
  • 寺庙网站模板数据库支持的网站怎么做
  • 兰州网站建设方案网站如何备案要关站吗
  • 工作室网页济南seo外包公司
  • 网站设计师联盟合肥html5网站建设
  • 北京建网站服务网站升级中模板
  • 建设网站的预期收益临汾网站建设
  • 规范门户网站的建设和管理办法美发店会员卡管理系统
  • 网站开发中什么是站点wordpress模板网站
  • 做html网站模板下载做高仿表网站容易被k吗
  • 化德网站建设怎么做wap网站
  • 个人网站开发大同网站建设费用
  • 促销网站怎么做南通中小企业网站制作
  • 长沙 网站运营做织梦网站的心得体会
  • 网站被qq拦截 做301dedecms新网站 上传到万网的空间
  • 网站建设发展指引seo收录查询工具
  • 如何让网站免费上海还能推seo吗
  • 苏州市网站制作网站页面布局用什么做
  • 南充网站开发ui下载高清素材的网站有哪些
  • 大连网站建杭州 企业门户网站建设
  • php手机网站源码下载正规app软件开发费用
  • 邢台建站网上商城平台开发
  • 金色金融公司网站源码小说关键词自动生成器
  • 周口规划建设局网站南平建设企业网站
  • 平凉热度网站建设北京网站设计公司兴田德润信任高
  • 有哪些网站建设公司上线山西省建设注册中心网站
  • 太原做网站设计网站域名做固定资产怎么处理