C++ STL——string容器

1,string基本概念

string是C++风格的字符串,而string本质上是一个类

string类内部封装了很多成员方法

例如:查找find,拷贝copy,删除delete,替换replace,插入insert

string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责。

2,string构造函数

string s1;//默认构造,创建一个空的字符串

string(const char* s); //使用字符串s初始化

string(const string& str);//使用一个string对象初始化另一个string对象

string(int n,char c);//使用n个字符c初始化

3,string赋值操作

给string字符串进行赋值

cpp 复制代码
string str;        //第一种方式,直接赋值、定义字符串str

str="hello world";        //

str="a";        //也可以用单个字符给字符串赋值

string str1;    //第二种

str1=str;         //用str的方法给str1赋值
string str2;    //第三种
str2.assign("hello world");
string str3;    //第三种
str3.assign("hello C++",5);//将hello C++的前五个字符赋值给str3
string str4;    //第四种
str4.assign(10,"w")    //十个w

4,string字符串拼接

功能描述:实现在字符串末尾拼接字符串

例:+=

cpp 复制代码
string str1="I"
str1+="like playing Game"
cout<<str1;// I like playing game

append函数

cpp 复制代码
string str2="I";
str2.append("love");//I love 
str2.append("game abcde",4);//将game abcde前四个字符加入进来 game
cout<<str2;//I love game

5,string查找与替换

功能描述:

查找:查找指定字符串是否存在:

cpp 复制代码
string str="abcdefg";
int position=str.find("de");//说明de在哪个起始位置
cout<<position<<endl;

结果:position=-1;未找到字符串

position 不等于-1:找到了字符串

find从左往右查找字符串,rfind从右往左查找字符串

替换:在指定的位置替换字符串

关键字:replace

cpp 复制代码
string str="abcdefg";
str.replace(1,3,"1111");
cout<<"str="<<str<<endl;//a1111efg

6,string字符串比较

功能描述:字符串之间的比较

比较方式:字符串比较是按字符的ASCII码进行对比

=返回 0

>返回 1

<返回 -1

关键词:compare

cpp 复制代码
string str1="abe";
string str2="abe";
str1.compare(str2);//0

7,string字符存取

string中单个字符存取方式有两种

通过[]方式取字符

通过at方法获取字符

\],at中间的数字相当于数组下标 ```cpp string str="abec" for(int i=0,i

相关推荐
Want5952 分钟前
C/C++圣诞树②
c语言·c++·算法
胡耀超15 分钟前
5、Python-NumPy科学计算基础
开发语言·人工智能·python·深度学习·numpy
得物技术15 分钟前
0基础带你精通Java对象序列化--以Hessian为例|得物技术
java·后端·编程语言
点灯小铭19 分钟前
基于MATLAB的车牌识别系统
开发语言·单片机·数码相机·matlab·毕业设计·课程设计
橘子在努力21 分钟前
【橘子SpringCloud】OpenFegin源码分析
java·spring boot·spring·spring cloud
我是廖志伟29 分钟前
JVM新生代Eden区域深度解析
java·jvm·memory management
天天代码码天天40 分钟前
基于海康SDK的C++实时视频流逐帧抓取存图小工具
c++·海康sdk·逐帧抓图
十八旬44 分钟前
苍穹外卖项目实战(day7-2)-购物车操作功能完善-记录实战教程、问题的解决方法以及完整代码
java·开发语言·windows·spring boot·mysql
BIGSHU09231 小时前
java多线程场景3-并发处理和异步请求
java·开发语言·python
_OP_CHEN1 小时前
数据结构(C语言篇):(十一)二叉树概念介绍
c语言·开发语言·数据结构·二叉树·学习笔记··