发现,之前写的博客中,有一种分割方式是在是有点落后.因此改进了一下,这里主要是第一个函数,百度中可以查到.
#include <iostream>
#include <vector>
#include <string>
using namespace std;
char *strsep(char **stringp, const char *delim)
{
//判断stringp是否为空,提高程序的容错性
char *s;
const char *spanp;
int c, sc;
char *tok;
if ((s = *stringp)== NULL)
return (NULL);
for (tok = s;;) {
c = *s++;
spanp = delim;
do {
if ((sc =*spanp++) == c) {
if (c == 0)
s = NULL;
else
s[-1] = 0;
*stringp = s;
return (tok);
}
} while (sc != 0);
}
}
void pushToVec(std::vector<std::string>&obj,const char *param,std::string token)
{
char *p = (char*)param;
char *key_point;
while(p)
{
while ( key_point = strsep(&p,token.c_str()))//关键字为c或d,它们连续出现了
{
//函数遇到token时,key_point指向token返回
if (*key_point == 0)
continue;
else
break