简单的C++ stringsplit

或许你和我一样,无法分割字符串,于是你就点入了一个文章,但依然没搞懂。今天,我编出来了一个简易的字符分割,但返回的不是数组。

原理:C库中有一个strtok的函数,专门分割出第几个字符集,原型如下

char *strtok (char *, const char *);

例子如下

#include <string>
#include <iostream>
using namespace std;
int main(){
    char* toSplitChar = (char*)"abc def";
    char* token = strtok(toSplitChar," ");
    cout << token;
    token = strtok(NULL," ");    //NULL会使指针转向上一次分出来剩下的值的下个段落,此时有两个
    cout << token;
    return 0;
};
/*************
* 返回结果    *
* abc        *
* def        *
*************/

 于是:利用c_str和string()方法变换类型,并返回string型的东西,代码如下

#include <string>
#include <cstring>
using namespace std;
//此函数用strtok方法,
string StringSplit(string TODO,string SPLITSTR,int TODOCHARNUM){
    //获得Char型的被分隔值
    char* toDoChar = (char*)TODO.c_str();
    //获得Char型的分隔值
    const char* splitStrChar = SPLITSTR.c_str();
    //隔出后的暂存点
    char* token;
    int tokenCharNum;
    //分割    @1 18line    @2 21line
    //第一个
    token = strtok(toDoChar,splitStrChar);
    //剩下的
    for (int i = 1;i < TODOCHARNUM;i++){
        token = strtok(NULL,splitStrChar);
    };
    string RETURNSTR = string(token);
    return RETURNSTR;
};
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值