标签:
//自带strtok
贴一个C实现的函数:
调用示例:
#define MAX_COLS 10
char src[256];
char *cols[MAX_COLS];
int count;
int i;
strcpy(src, "aa aa bbc cccd");
count = splitEx(src, ‘ ‘, cols, MAX_COLS);
for (i=0; i<count; i++)
{
printf("%d. %s\n", i+1, cols[i]);
}
int splitEx(char *src, const char seperator, char **pCols, const int nMaxCols)
{
char *p;
char **pCurrent;
int count = 0;
if (nMaxCols <= 0)
{
return 0;
}
p = src;
pCurrent = pCols;
while (true)
{
*pCurrent = p;
pCurrent++;
count++;
if (count >= nMaxCols)
{
break;
}
p = strchr(p, seperator);
if (p == NULL)
{
break;
}
*p = ‘\0‘;
p++;
}
return count;
}
//c++///////////////////////////////////////////////////////////
#include <string>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
string test = "aa aa bbc cccd";
vector<string> strvec;
string strtemp;
string::size_type pos1, pos2;
pos2 = test.find(‘ ‘);
pos1 = 0;
while (string::npos != pos2)
{
strvec.push_back(test.substr(pos1, pos2 - pos1));
pos1 = pos2 + 1;
pos2 = test.find(‘ ‘, pos1);
}
strvec.push_back(test.substr(pos1));
vector<string>::iterator iter1 = strvec.begin(), iter2 = strvec.end();
while (iter1 != iter2)
{
cout << *iter1 << endl;
++iter1;
}
return 0;
}
标签:
原文地址:http://my.oschina.net/u/1777508/blog/489201