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

相关推荐
linweidong1 小时前
C++ 模块化编程(Modules)在大规模系统中的实践难点?
linux·前端·c++
冷雨夜中漫步6 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
半桔6 小时前
【IO多路转接】高并发服务器实战:Reactor 框架与 Epoll 机制的封装与设计逻辑
linux·运维·服务器·c++·io
JH30737 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
HABuo7 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
我在人间贩卖青春7 小时前
C++之多重继承
c++·多重继承
m0_736919108 小时前
C++代码风格检查工具
开发语言·c++·算法
Coder_Boy_8 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
2501_944934738 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
invicinble8 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat