对于String 类相关接口的补充

在这里插入图片描述

目录:

之前对于String类的接口介绍的还不够全,下面我对于String类的接口进行进一步的补充

1.修改操作

erase

----是对于字符串的一个删除操作

string& erase (size_t pos = 0, size_t len = npos);

size_t pos: 开始删除的位置
size_t len: 要删除的长度

string str = "123456";
	
str.erase(3, 2);  //从第三个开始删除后面的两位 "1236"

str.erase(0, 1);  //同上 "236"

iterator erase (iterator p);

iterator p: 按顺序保留P个字符,删除剩下字符

string str = "123456";

str.erase(5);	//保留前5个数据,删除其他的数据  "12345"

iterator erase (iterator first, iterator last);

iterator first: 要删除的首位置
iterator last:要要删除的末位置
----两者组成要删除的位置

string str = "123456";

//"13456"
str.erase(str.begin()+1);  //删除对应位置的单个数据//这里是删除从迭代器的最开始删除往后面的一位
//" "
str.erase(str.begin(),str.end());  //删除迭代器之间范围内的数据
replace

string& replace (size_t pos, size_t len, const string& str);

size_t pos: 替换字符其实的位置
size_t len: 替换字符的长度
const string& str:要替换成字符的具体内容

string str1 = "123456789";

str1.replace(2, 5, "abc");   //从第二个字符开始将后面的五个全部替换成后面自己输入的字符

string& replace (iterator i1, iterator i2, const string& str);

iterator i1: 利用迭代器求出起始的位置
iterator i2: 迭代器求出末尾的位置
const string& str: 要替换的具体字符
----利用迭代器记录的两个位置将要替换的内容转变

str1.replace(str1.begin()+2, str1.end()-2, "dddddddd");//将begin迭代器向后两位和end迭代器向前的2位之间的范围替换成后面的数据
	
str1.replace(++str1.begin(), --str1.end(), "dddddddd");//前置后移一位,后置往前一位,将之间的范围替换成对应的字符串
swap

void swap (string& str);

string& str: 要被交换的字符串

----因为他有两种不同的方式,在成员函数中就要带上具体的头文件
----在整个成员函数中则不需要,直接交换

//成员函数
str1.swap(str);		//字符串进行交换

//全局
swap(str, str1);	//类似于自己进行模板初始化的一个函数

2.字符串具体操作

c_str

const char* c_str() const;
----将字符串按照C语言的方式进行输出

//按照C的方式来进行输出

cout << str.c_str() <<"end"<< endl;	//当遇到\0就会直接结束,不会输出\0

cout << str.data() << "end" << endl;//进行普通的输出
find

size_t find (const string& str, size_t pos = 0) const;

const string& str: 检索对应的字符串
size_t pos = 0: 开始寻找的位置

string str = "23456123123";

size_t pos = str.find("666663");	//找不到返回最大的容量//4G

size_t pos=str.find("123");			//如果找到了就直接返回对应的前一个位置  5

size_t find (const char* s, size_t pos, size_t n) const;

const char s: 需要查看的字符串
size_t pos: 寻找的起始位置
size_t n: 需要寻找的字符串个数
*

pos = str.find("456abd", 0, 2);	//查找从0开始2个字符的对应  //45
rfind

----反向查找
size_t rfind (const string& str) const;

const string& str: 需要反向查找的字符串

//反向查找
	pos = str.rfind(str2);
substr

string substr (size_t pos = 0, size_t len = npos) const;

简单了解下面的
find_first_not_of;	//不属于以后的一个

find_first_of;		//找到任意的第一个

find_last_not_of;		//不属于的最后一个

find_last_of;			//最后一个

几天的这这些就是对于String的补充,大家多运用运用就可以了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值