



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C++如何切割String对象的方法目录核心函数find函数substr函数数值转换输入样例输出样式C++相较于Java,Python并没有提供的字符串分割的函数split,因此需要自己进行编写。在实际的工作中这一功能会被经常使用,所以进行简单的记录一下。
核心函数
代码实现的函数是调用String库中的find函数和substr函数。
find函数
size_typefind(constbasic_stringstr,size_typepos=0)
find函数完成最简单的搜索,它查找参数指定的字符串(str),若找到返回一个String::size_type的值,用来表示匹配发生位置的下标。若未找到,则返回一个名为string::npos的static成员。C++标准库将npos定义为一个conststring::size_type类型,并初始化值为-1。由于npos是一个unsigned类型,此初值意味着npos等于任何string最大的可能大小。
参数str,pos表示从pos位置中开始查找str
除了find操作,string还支持以下的操作
str.find(args)查找str中args第一次出现的位置str.rfind(args)查找str中args最后一次出现的位置str.find_first_of(args)查找str中args中第一个字符第一次出现的位置str.find_last_of(args)查找str中args中第一个字符最后一次出现的位置str.find_first_not_of(args)查找str中args中第一个不在atgs中的字符str.find_last_not_of(args)查找str中args中最后一个不在atgs中的字符
substr函数
stringsubstr(size_typepos=0,size_typecount=npos)
substr主要功能是复制字符串,要求从指定的位置pos开始,并具有指定的长度count。若未指定长度或者pos+count源字符串的长度,则子字符串将延续到源字符串的结尾
数值转换
由于本次样例中需要将string类型转换为int类型,我们简单介绍以下常见的string的数值转换
int转换成string
inti=42;
strings=to_string(i);
string转换成int
stringstr='42';
stoi(str);
输入样例
nums=[3,2,4],target=6
输出样式
324
6
代码实现
#includeiostream
#includevector
#includestring
usingnamespacestd;
voidspiltStr(stringstr,conststringsplit,vectorstringstrlist)
strlist.clear();
if(str=="")
return;
stringstrs=str+split;
size_tpos=strs.find(split);
intsteps=split.size();
while(pos!=strs.npos)
{
//substr复制字符串,起始位置,复制字符数目
stringtemp=strs.substr(0,pos);
strlist.push_back(temp);
strs=strs.substr(pos+steps,strs.size());
pos=strs.find(split);
}
intmain()
vectorint
vectorstringstrlist;
stringinputStr;
stringtempStr;
inttarget;
getline(cin,inputStr);
if(inputStr=="")
{
return0;
}
//分割输入的字符串
spiltStr(inputStr,"[",strlist);
spiltStr(strlist[1],"]",strlist);
spiltStr(strlist[0],",",strlist);
//将vectorstringspiltStr的数值写入vectorintnums中
for(autoi:strlist)
{
num.push_back(stoi(i));
}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025合作伙伴广告投放合同范本
- 2025合作合同国际合作伙伴协议
- 2025建筑工程室内装修施工合同范本
- sat考试题目及答案
- 助理广告师创意设计能力考核试题及答案
- 2024年纺织工程师新技术推广试题及答案
- 单招工程制图试题及答案
- 喜乐与我测试题及答案
- 突破常规的2024年国际商业美术设计师考试试题及答案
- 资格证面试讲课真题及答案
- 人教版三年级数学下册1~8单元练习
- 《原发性肝癌诊疗指南(2024年版)》解读
- 服务整改报告范文
- 中建防水专项施工方案
- 市政给水管道工程监理细则
- 展厅设计案例分析
- 第七章-生物医学工程的伦理问题
- 2021年下半年软件评测师考试软件测试应用技术下午真题
- 卜算子-送鲍浩然之浙东课件
- 2024无障碍环境评价规范
- 铁皮石斛林下生态栽培技术规程
评论
0/150
提交评论