学习笔记24- C/C++ 字符串分割函数

来源:互联网 发布:微商网站源码 编辑:程序博客网 时间:2024/06/05 09:08

字符串分割

因为C++没有类似Python,Java那样的split函数,所以需要自己实现字符串分割。

方法1

可以先将string类型转换成char数组,然后使用C语言的strtok函数,进行字符串分割:

#include<stdio.h>#include<string.h>int main(){    char s[]="a,b,c,d";    const char *key=",";    char *p;    p=strtok(s,key);    while(p)    {        printf("%s\n",p);        p=strtok(NULL,key);    }    printf("\n");    return 0;}

上面代码将字符串”a,b,c,d”分割成a b c d四个子串。

方法2

自己写一个split函数,把string的子串分到一个string类型的vector里面。

#include<iostream>#include<string>#include<vector>using namespace std;void split(const string&s,vector<string>&v,const string&key){    string::size_type pos1=0;    string::size_type pos2=s.find(key);    while(pos2!=string::npos)    {        v.push_back(s.substr(pos1,pos2-pos1));        pos1=pos2+key.size();        pos2=s.find(key,pos1);    }    if(pos1!=s.length())        v.push_back(s.substr(pos1));}int main(){    string s;    cin>>s;    vector<string>v;    split(s,v,",");    for(int i=0;i<v.size();i++)        cout<<v[i]<<endl;    return 0;}
原创粉丝点击