string容器 (2022.9.12学习笔记)

string容器 (2022.9.12学习笔记)

最近每天都在刷力扣题,在刷题过程中发现自己对于STL库的组件使用还是不熟练,因此打算复习一下STL库的各个容器,今天从string开始复习起。

1、string介绍

string容器是一个类 这个容器中有一个指针,指针维护一个数组
封装了char,管理这个字符串,是一个char型的容器
常用功能:
查找find 拷贝copy 删除delete 替换replace 插入insert

2、string容器常用操作

2.1 string构造函数

string();//创建一个空的字符串 string str
string(const string& str);//使用一个string对象初始化另一个string对象
string(const char* s);//使用字符串s初始化
string(int n, char c);//使用n个字符c初始化v

    string str;
    string str1("hello");
    string str2(str1);
    string str3(5, 'k');
2.2赋值操作
    string str("helloworld");
    string str1("heihie");
    str = str1;
    str.assign(str1);
    cout << str << endl;//输出helloworld
    str.assign("hehe");
    cout << str << endl;//输出hehe
    str.assign("jack", 2);
    cout << str << endl;//输出jack的前两个char型字符ja
    str.assign(str1, 2, 3);//输出ihi从第2个字符起(含有第0个字符)起输3个 
    cout << str <<endl;//输出ihi
    
2.3存取字符串操作
   string str("helloworld");
   cout<<str[4]<<endl;
   str[4]='c';
   cout<<str.at(4)<<endl;

str[n] str.at(n)

2.4字符串拼接操作
  str.append(str1)  
  str+=str2  
  str.append(str3,2) 拼接上str3的前两个  
  str(str4,3,2) 拼接上str3从第4个元素开始的2个
2.5字符串的查找和替换

find rfind

    string str("helloworld");
    string str1("wor");
    cout << str.find(str1) << endl;//输出5
    cout<<str.find("wor")<<endl;//输出5
    cout << str.find("world",0,2) << endl;//从0开始查找world前两个元素的位置  
    cout<<str.rfind("lr")<<endl;//从右往左找第一个lr的位置 输出8
    str.replace(2,4,str1)//从第2个位置替换 将4个字符替换成str1
2.6字符串的比较

compare函数在>时返回1,<时返回-1,==时返回0

    int ret=str1.compare(str2)
    str1>str2 返回1
    str1<str2 返回-1
    str1=str2 返回0
2.7string的子串

string substr(int pos=0,int n=pos);//返回从pos开始的n个字符组成的字符串

2.8string的插入和删除操作

string& insert(int pos,const char* s);//插入字符串
string$ insert(int pos,const string& str);//插入字符串
string& insert(int pos,int n ,char c);//从指定位置插入n个字符
string& erase(int pos,int n=npos);//删除从pos位置开始的n个字符

2.9string和char*的相互转化
    string str("hello");
    char* s = NULL;
    s = const_cast<char*>(str.c_str());
    cout << s << endl;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值