C++STL之string类
最近在准备ccfcsp,于是学习了一下STL标准库的string类,在此记录。
作为STL类介绍的第一篇文章,首先简单介绍一下为什么要用STL,原因就是解决了一个问题之后,就不要对这个问题再来做重复的工作了,于是出现了模板。而宏定义由于不够安全,现在已经被STL取代。
引入 #include using std::string
构造函数
- string name1(“aaa”);
- string name2=“aaa”;
- string name3(“aasdsadasdas”,9) 0-9个字符给name3
- string name4(“sdasdas”,3,6) 最后一个参数6为最多复制多少个字符给name4,如果缺省则为从3后面的全部字符都给name4
- string name5(‘d’,20) name5为20个字符d
- 总结:string类的对象一般以()的形式初始化少用=,因为这样符合构造函数的形式。
运算符
- =赋值运算
- +连接运算
- <、>等比较运算
- 【】索引
成员函数
- append 字符串连接 str.append(str1) str.append(str2,3,8) str2从3位置开始的八个字符进行连接
- pushback 连接一个字符
- compare str1.compare(str2) 返回类型为bool
- clear 变为空字符串无返回值
- empty 如果字符串为空返回true
- find int pos1=str.find(str2,pos) 从0开始的pos位置开始找,否则从头开始。如果没有找到返回string::npos str.fing(ch,pos)查找一个字符
- rfind 反向查找 str1.rfind(str2/ch,n)反向查找到正着开始数的弟n个字符
- insert str1.insert(n1,str2,n2,n3)从str1的n1位置开始插入str2的n2位置开始的n3个字符
- replace str1.replace(pos,n,str2,pos2,n2) replace(pos,n,ch)替换成字符
- substr str1.substr(pos,n)
- swap 交换函数
- find_first_of int pos=str1.find_first_of(str3,n,m); n为从str1的哪个位置开始,m为str3的几个字符,参数可以为ch
- find_first_not_of
- find_last_of int pos=str1.find_first_of(str3);
- find_last_not_of
迭代器
string::iterator it
- it=str.begin(); 字符串的开始地址
- it=str.end(); 字符串的最后一个地址在往后(字符串外的地址)
for(it=str.begin();it!=str.end();it++)
反向迭代器
string::reverse_iterator::it
- rbegin()
- rend()
此时it++实际为向左移动
补充如何实现字符串的反转
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;int main()
{string s = "hello";reverse(s.begin(),s.end());cout<<s<<endl;return 0;
}
#include <iostream>
#include <cstring>
using namespace std;int main()
{char s[]="hello";strrev(s);cout<<s<<endl;return 0;
}
C++STL之string类相关推荐
- STL 的string类怎么啦?
STL 的string类怎么啦? 陈皓 前言 上个周末在和我的同学爬香山闲聊时,同学说到STL中的string类曾经让他备受折磨,几年前他开发一个系统前对string类还比较清楚,然后随着程序的复杂度 ...
- STL之string类:知其然,需知其所以然
目录 前言 一,构造及初始化 1.1constuct类函数 1.2构造函数及其模拟实现 1.3拷贝构造及其模拟实现 1.4赋值操作符 1.5string类的swap接口 二,迭代器 2.1初识迭代器即 ...
- stl之string类用法详细总结
标准c++中String类非常强大,合理使用,能极大提高编程效率,下面就对string类的用法进行总结. 头文件 #include<string> String类的构造函数如下: 1) ...
- 【C++STL】string类
文章目录 前言 使用 重新赋值 删除 比较 复制 查找子串 返回字串与交换 运算符重载 迭代器 算法 总结 前言 本节课讲的是STL(Standard Template Library 标准模板库) ...
- 《C++中STL引入和string类常用接口+自我实现-》
前言 在这篇博客里将详细说说C++中的STL,通过这篇我们可以学习到什么是STL,以及STL的六大组件,STL具有的缺陷,最后看看string类及面试会让模拟实现string类的操作. 文章目录 前言 ...
- C++面试中string类的一种正确写法
C++ 的一个常见面试题是让你实现一个 String 类,限于时间,不可能要求具备 std::string 的功能,但至少要求能正确管理资源.具体来说: 能像 int 类型那样定义变量,并且支持赋值. ...
- STL中list类的自己简单实现
前面写了STL中关于string类和vector类的简单实现,要想成体系学习的小伙伴可以看一看(48条消息) STL中vector类的自我简单实现_芜湖开冲-的博客-CSDN博客https://blo ...
- c++ - 第8节 - string类
目录 1.为什么学习string类 1.1.C语言中的字符串 1.2.面试题需要 2.标准库中的string类 2.1.string类 2.2.string类的常用接口说明 2.3.string类练习 ...
- C++ 笔记(22)— STL string 类(字符串赋值、访问、拼接、查找、翻转、大小写转换)
1. 实例化和赋值 STL string #include <string> #include <iostream>int main () {using namespace s ...
最新文章
- add python3.7 to path是什么意思_一起读源码:为什么 loguru 的时间 rotation 不能只精确到天...
- mysql 绿色版远程访问_【Linux】MySQL解压版安装及允许远程访问
- hust sci列表
- 从ISA Server 2006升级到TMG2010
- 初学css list-style属性
- 公式编辑公式总是偏上怎么办?
- linux下json数据解析,Linux下使用jq简单解析json的方法
- python爬虫淘宝评论_Python爬取淘宝店铺和评论
- iOS强制切换横屏、竖屏
- matlab条形指纹拼接,matlab实现的两幅指纹图像的拼接
- 自动运维化tools篇1:用expect完成用户密码的批量修改
- 千万千万不要运行的Linux命令
- 变频器按启动没反应_ABB变频器启动无反应维修那些事
- springboot球类运动教学网站的设计与实现271611
- [ASP.NET]基于asp.net的客户信息反馈系统
- Remote-SSH 安装教程
- 计算机安装Hp1005打印机,hp1005打印机驱动安装使用方法 常见问题解答分享
- html的国际标准智商测试,国际标准智商测试题
- oracle auto failover,dg设置auto failover
- 任务卡_05-数据库_数据库基础
热门文章
- 通用人工智能最新突破!一个Transformer搞定一切
- 华为5500v3多路径linux6,使用Linux自带多路径multipath
- 牛客 13134 牛牛的数列
- vue中事件监听watch
- 标品与非标品的定义 标品与非标品的区别,以及标品与非标品直通车运营方案
- bitwise ssh client的使用
- neutron-server.service启动失败显示代理报错http://controller:9696/v2.0/agents.json
- unity屏幕后处理效果
- 基于WIFI信号的呼吸和心率检测(论文总结)
- 为什么别人可以年薪百万?