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

字符串分割

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

方法1

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

#include
#include
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
#include
#include
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;icout<return 0;
}

你可能感兴趣的:(c++)