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字符串进行赋值

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字符串拼接

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

例:+=

string str1="I"
str1+=“like playing Game”
cout<<str1;// I like playing game

 append函数

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

5,string查找与替换

功能描述:

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

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

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

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

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

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

关键字:replace

string str="abcdefg";
str.replace(1,3,"1111");
cout<<"str="<<str<<endl;//a1111efg

6,string字符串比较

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

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

=返回 0

>返回 1

<返回 -1

关键词:compare

string str1=“abe”;
string str2=“abe”;
str1.compare(str2);//0

7,string字符存取

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

通过[]方式取字符

通过at方法获取字符

[],at中间的数字相当于数组下标

string str=“abec”
for(int i=0,i<str.size,i++){
cout<<str[i]<<endl;    //a b e c 
cout<<str.at[i]<<endl;    //a b e c 

8,string插入和删除

功能描述:

对string字符串进行插入和删除字符操作

例:string str;

插入操作:str.insert (起始位置,“插入元素”)

str.insert(1,"111")//在一号字符后插入111

删除操作:str.erase (起始位置,几个字符)

str.erase(1,3)//从一号字符开始删除三个字符

总结:插入和删除的起始下标都是从0开始的

9,strig子串

从字符串中获取想要的子串,语法:str.substr(截取的起始位置,截取的终止位置)

string str="abcde";
string subStr=str.substr(1,3);
cout<<subStr<<endl;    //bcd

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值