文档详情

C++-string字符串的切片方式.docx

发布:2025-05-31约1.74千字共3页下载文档
文本预览下载声明

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;

}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

显示全部
相似文档