C++如何切割String对象的方法_第1页
C++如何切割String对象的方法_第2页
C++如何切割String对象的方法_第3页
C++如何切割String对象的方法_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论