C++-string字符串的切片方式.docx
第
C++:string字符串的切片方式
目录C++:string字符串的切片1.substr用于进行已知序号的切片操作2.find函数和substr函数C++特定分隔符将字符串进行分割总结
C++:string字符串的切片
string字符串在C++中不能直接进行切片操作,需要借助函数find和substr进行
1.substr用于进行已知序号的切片操作
substr语法为:
string对象.substr(起点,切片长度)
operate_str=initial_str.substr(0,3);
代码演示如下
???//使用substr函数实现已知序号的字符串切片
???stringinitial_str=0123456789;
???stringoperate_str;
???operate_str=initial_str.substr(0,3);//从0号开始,切片长度为3,即截取0到(0+3-1)号
???coutoperate_str=operate_strendl;//输出结果为012
2.find函数和substr函数
配合用于进行已知特征字符串的字符串切片
find函数处理对象中存在特征字符串时返回特征串第一个字符的序号,若对象中不存在特征字符串则返回-1
find函数语法为:
string对象.find(特征字符串)
intstart=initial_str.find(key1);?
以下配合substr实现已知特征字符串的字符串切片
???//使用substr函数配合find函数实现已知特征串的字符串切片
???stringkey1=23;//定义特征串
???intlen=5;//定义切片长度
???intstart=initial_str.find(key1);//返回特征串第一个字符的序号,此处为2
???stringkey2=abc;//测试不存在特征串返回值
???intresult=initial_str.find(key2);
???coutresult=resultendl;//对象中不存在特征串,此处输出为-1
???operate_str=initial_str.substr(start,len);//从start开始,切片长度为len,即截取start到(start+len-1)号
???coutoperate_str=operate_strendl;//输出结果为23456
(变量与只使用substr时相同)
C++特定分隔符将字符串进行分割
使用特定分隔符\n将字符串进行分割,如传参数2025\n01\n13,则输出结果为
2025
01
13
voidSplitString(std::stringstr){
if(str.empty()){
return;
vectorstd::stringres;
constcharsplit=\n;//分割符
std::stringstrs=str+split;
size_ti=0;
size_tpos=strs.find(split,i);
while(pos!=strs.npos){
stringtemp=strs.substr(i,pos-i);
res.push_back(temp);
i=pos+1;
pos=strs.find(split,i)
for(inti=0;ires.size();i++){
coutres.[i]endl;
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。