strtok()是一个库函数,它的作用是把一个字符串按照指定的字符串分割开,比如字符串“Nice to meet you",按照空格隔开分别为Nice、to、meet、you
那么这个函数该怎么实现呢?
代码如下:
#include<iostream>
using namespace std;
char *strtok1(char *string,const char * control)
{
char *str;
const char *ctrl=control;
char map[32];
int count;
static char *nexttoken;
for(count=0;count<32;count++)
map[count]=0;
do
{
map[*ctrl]=1;
} while(*ctrl++);
if(string)
str=string;
else
str=nexttoken;
while(map[*str]==1&&*str)
str++;
string=str;
for(;*str;str++)
{
if(map[*str]==1)
{
*str++='\0';
break;
}
}
nexttoken=str;
if(string==str) return NULL;
else return string;
}
int main()
{
char s[]="Nice to meet you!";
char *d=" ";
char *p=NULL;
p=strtok1(s,d);
while(p)
{
cout<<p<<endl;
p=strtok1(NULL,d);
}
getchar();
return 0;
}