string容器

13 篇文章 0 订阅
11 篇文章 0 订阅

符华生日快乐,谢谢你的陪伴

 我会一直喜欢你,做一个守望者,以后的每一个生日都想为你献上我的祝福 符华我超喜欢你

string

本质:

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

string和char*的区别

  • char*是一个指针

  • string是一个类,类内部封装了char*,管理这个字符串,是一个char *型容器

特点:

string类内部封装了很多成员方法 例如:查找find,拷贝copy, 删除delete,替换replace,插入insert

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

功能总结:添改查删替

表格整理

操作函数 string a="jiagezuishuai"; string b;步骤
string赋值操作b.assign(插入内容,内容选取长度);string a="dsada"; string b=a; string c; c.assign("dasda",5);
string字符串拼接b.append(拼接内容,截取位置,截取长度);string c+=a; string d;d.append("adasd");d.append(追加内容,截取位置,截取长度);//空格也算长度
string 查找b.find(查找内容); b.rfind(查找内容) 区别 rfind 从右往左查找,find从左往右查找int b=a.find("ac");//返回数据第一次出现的位置,注意从0开始算,有返回位置 无返回-1,int c=a.rfind("ac");区别 rfind 从右往左查找,find从左往右查找
string 替换b.replace(位置,数量,替换内容);//数量与内容量不等时位置起数量个字符替换为替换内容string b="adasdwada";b.replace(位置,数量,替换内容);//数量与内容量不等时位置起数量个字符替换为替换内容
string字符串的比较int c; string d; c=b.compare(d);当b>d c为1,当b=d c 为0, 当b<d c为-1;if(a.compare(b)==0) { cout<<"a=b"<<endl; } if else(a.compare(b)>0) //成立返回1 { cout<<"a>b"<<endl; } else { cout<<"a<b"<<endl; } //中文无法比
string字符存取b.at(位置);1.通过[]访问单个字符 string a="adbsadad"; for(int i=0;i<sizeof(a);i++) { cout<<a[i]<<endl; } 2.通过at方式访问单个字符 for(int i=0;i<a.size(a);i++) { cout<<a.at(i)<<endl; }
string字符修改b.at(位置)=修改内容string a="adasdsad"; a[1]='a'; a.at(5)='b';
string字符插入b.insert(位置,内容);//从0开始算string a="ada"; a.insert(位置,"内容");//从0开始算
string字符删除b.erase(位置,删除个数)string b="dasda"; b.erase(位置,删除个数)
string字串获取string b=a.substr(起始位置,截取个数);string a="dasda"; string b=a.substr(起始位置,截取个数);

string构造函数

  • string(); //创建一个空的字符串,例如string str;

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

  • string(const string&str);//使用一个string对象初始化另一个string对象(拷贝构造)

  • string(int n,char c);//使用n个字符c初始化(输出后为n个c ,c为字符)

string赋值操作

  • 功能:给string字符串进行赋值

     

string字符串拼接

  • 功能:实现在字符串尾部拼接字符串

.append(追加内容字符串老规矩上引号);

.append(追加内容,截取位置,截取长度);//空格也算长度

string查找和替换

功能描述

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

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

 

  •  

  •  

  • 查找

string a="adbdaddacd";
int b=a.find("ac");//返回数据第一次出现的位置,注意从0开始算
有返回位置 无返回-1
int c=a.rfind("ac");
区别 rfind 从右往左查找
     find从左往右查找
  • 替换

  • string b="adasdwada";
    b.replace(位置,数量,替换内容);//数量与内容量不等时位置起数量个字符替换为替换内容

    string字符串的比较

功能描述

  • 字符串之间的比较

比较方式

  • 字符串是按字符的ASCLL码进行对比

  • =返回0

  • .>返回1

  • <返回-1

 

string a="xuejia zuishuai";
string b="nabixu de";
if(a.compare(b)==0)
{
    cout<<"a=b"<<endl;
}
if else(a.compare(b)>0)  //成立返回1
{
    cout<<"a>b"<<endl;
}
else
{
    cout<<"a<b"<<endl;
} //中文无法比

string字符存取

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

  • 读取单个字符

1.通过[]访问单个字符
    string a="adbsadad";
    for(int i=0;i<sizeof(a);i++)
    {
        cout<<a[i]<<endl;
    }
2.通过at方式访问单个字符
    for(int i=0;i<a.size(a);i++)
    {
        cout<<a.at(i)<<endl;
    }
  • 修改单个字符

string a="adasdsad";
a[1]='a';
a.at(5)='b';

string插入和删除

功能描述

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

插入

string a="ada";
a.insert(位置,"内容");//从0开始算

删除

string b="dasda";
b.erase(位置,删除个数)

string容器子串获取

功能描述

  • 从字符串中获取想要的字串

函数原理

string a="dasda";
string b=a.substr(起始位置,截取个数);
函数、调用意义步骤
string::npos字符串可存储的最大字符数,返回尾地址sring::npos
a.capacity()容器的容量e.capacity; 容器的容量
a.reserve(int length)容器预留len个元素长度,预留位置不初始化,元素不可访问v.reserve(预留空间); 让其只开辟一次空间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只符华单推人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值