strtok()函数的实现

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;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值