C++如何切割String对象的方法

目录
  • 核心函数
  • find函数
  • substr函数
  • 数值转换
  • 输入样例
  • 输出样式

C++相较于Java,Python 并没有提供的字符串分割的函数split,因此需要自己进行编写。在实际的工作中这一功能会被经常使用,所以进行简单的记录一下。

核心函数

代码实现的函数是调用String库中的find函数和substr函数。

find函数

size_type find(const basic_string &str,size_type pos=0)

find函数完成最简单的搜索,它查找参数指定的字符串(str),若找到返回一个String::size_type的值,用来表示匹配发生位置的下标。若未找到,则返回一个名为string::npos的static成员。C++标准库将npos定义为一个const string ::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函数

string substr(size_type pos=0,size_type count=npos)

substr主要功能是复制字符串,要求从指定的位置pos开始,并具有指定的长度count。若未指定长度或者pos+count>源字符串的长度,则子字符串将延续到源字符串的结尾

数值转换

由于本次样例中需要将string类型转换为int类型,我们简单介绍以下常见的string的数值转换

int转换成string

int i=42;
string s=to_string(i);

string 转换成int

string str='42';
stoi(str);

输入样例

nums = [3,2,4], target = 6

输出样式

3 2 4 
6

代码实现

#include<iostream>
#include<vector>
#include<string>
using namespace std;

void spiltStr(string str,const string & split,vector<string>&strlist)
{
    strlist.clear();
    if(str=="")
        return;
    string strs=str+split;
    size_t pos=strs.find(split);
    int steps=split.size();

    while(pos!=strs.npos)
    {
        //substr 复制字符串,起始位置,复制字符数目
        string temp=strs.substr(0,pos);
        strlist.push_back(temp);
        strs=strs.substr(pos+steps,strs.size());
        pos=strs.find(split);
    }

}

int main()
{
    vector<int>num;
    vector<string>strlist;
    string inputStr;
    string tempStr;
    int target;

    getline(cin,inputStr);
    if(inputStr=="")
    {
        return 0;
    }

    //分割输入的字符串
    spiltStr(inputStr,"[",strlist);
    spiltStr(strlist[1],"]",strlist);
    spiltStr(strlist[0],",",strlist);

    //将vector<string>spiltStr的数值写入vector<int>nums中
    for(auto i:strlist)
    {
        num.push_back(stoi(i));
    }

    spiltStr(inputStr,"=",strlist);

    // spiltStr(strlist.back(),"=",strlist);
    target=stoi(strlist.back());

    for(auto i:num)
    {
        cout<<i<<" ";
    }
    cout<<endl;
    cout<<target<<endl;
    

}

例程演示

到此这篇关于C++如何切割String对象的方法的文章就介绍到这了,更多相关C++ 切割String对象内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++之string类对象的容量操作详解

    目录 前言 1. size返回字符串的有效长度 2. length 返回字符串的有效长度 3. capacity 返回总空间的大小 4. empty 检测是否为空串 5. clear 清空有效字符 6. resize 修改个数并填充 7. reserve 为字符串预留空间 总结 前言 hello,大家好,今天这期文章我们用来介绍string类对象的容量操作.希望对大家有所帮助,让我们开始吧. 1. size返回字符串的有效长度 返回字符串的长度,以字节为单位.这是符合字符串内容的实际字节数,不一

  • C++如何切割String对象的方法

    目录 核心函数 find函数 substr函数 数值转换 输入样例 输出样式 C++相较于Java,Python 并没有提供的字符串分割的函数split,因此需要自己进行编写.在实际的工作中这一功能会被经常使用,所以进行简单的记录一下. 核心函数 代码实现的函数是调用String库中的find函数和substr函数. find函数 size_type find(const basic_string &str,size_type pos=0) find函数完成最简单的搜索,它查找参数指定的字符串(

  • Java String对象使用方法详解

    Java String对象使用方法详解 先来看一个例子,代码如下: public class Test { public static void main(String[] args) { String str = "abc"; String str1 = "abc"; String str2 = new String("abc"); System.out.println(str == str1); System.out.println(str1

  • JavaScrip String对象的方法

    目录 String对象的方法 方法一: indexOf() (推荐) 方法二: search() 方法三:match() RegExp 对象方法 方法四:test() 方法五:exec() 总结 String对象的方法 方法一: indexOf() (推荐) var str = "123"; console.log(str.indexOf("3") != -1 ); // true indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置.如果要检索

  • JavaScript中String对象的方法介绍

    1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(question.charAt(5)); //"u" 字符串 "Do you like JavaScript?" 的长度为23,即位置从0到22.指定位置5处的字符是"u". 1.2 charCodeAt() 方法,返回字符串中指定位置的字符编码. var

  • JavaScript原生对象之String对象的属性和方法详解

    length length 属性可返回字符串中的字符数目. length 是根据字符串的UTF-16编码来获取长度的,空字符串长度为0.length 不可修改. charAt() charAt() 方法可返回指定位置的字符.注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串. stringObject.charAt(index) 参数index是必需的.表示字符串中某个位置的数字,即字符在字符串中的下标.字符串中第一个字符的下标是 0.如果

  • JavaScript中json对象和string对象之间相互转化

    json对象 复制代码 代码如下: var json = {aa:true,bb:true}; var json1 = {aa:'b',bb:{cc:true,dd:true}}; 1:js操作json对象 复制代码 代码如下: for(var item in json){ alert(item); //结果是 aa,bb, 类型是 string alert(typeof(item)); alert(eval("json."+item)); //结果是true,true类型是boole

  • JavaScript中string对象

    一.String:存储一个字符串,并且提供处理字符串需要的属性和方法. 1.创建String对象:显示和隐式 <DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <head> <title>js函数</title> </head> <script ty

  • JavaScript常用对象的方法和属性小结

    本文将简单介绍JavaScript中一些常用对象的属性和方法,以及几个有用的系统函数. 一.串方法 JavaScript有强大的串处理功能,有了这些串方法,才能编写出丰富多彩的网页.在这一部分里,我们将介绍到如何使用与串对象有关的方法和属性. 1.串对象的length属性 串对象仅有一个属性length,这个属性值表示这个串所包括字符的相对数目.语法为: stringName.length 2.串对象的方法 JavaScript提供了多个串方法以帮助控制显示信息.串方法可以分为几个大类,如属性方

  • PowerShell String对象方法小结

    从之前的章节中,我们知道PowerShell将一切存储在对象中,那这些对象中包含了一系列中的称之为方法的指令.默认文本存储在String对象中,它包含了许多非常有用的处理文本的命令.例如,要确定一个文件的扩展名,可以使用LastIndexOf()获取最后一个字符"."的位置,继续使用Substring()获取扩展名子串. PS> $path = "C:\prefs.js" PS> $path.Substring( $path.LastIndexOf(&q

  • 在Javascript中为String对象添加trim,ltrim,rtrim方法

    以下我们就用这个属性来为String对象添加三个方法:Trim,LTrim,RTrim(作用和VbScript中的同名函数一样) 复制代码 代码如下: String.prototype.Trim = function() {     return this.replace(/(^\s*)|(\s*$)/g, ""); } String.prototype.LTrim = function() {     return this.replace(/(^\s*)/g, "&quo

随机推荐