#include "stdafx.h"
#include "stdio.h"
#include "string.h"
/*
int main(void)
{
char str[] = "root:x::0:root:/root:/bin/bash:";
char *token;
token = strtok(str, ":");
printf("%s\n", token);
while ( (token = strtok(NULL, ":")) != NULL)
printf("%s\n", token);
return 0;
}*/
char aa[32];
char *split_data( char *init_data, char *separator,int num)
{
char str[] = "root:x:0:root:/root:/bin/bash:";
char *token=NULL;
char p[128];//慎用指针,之前在此用的是指针,然后一直出错,换成数组就可以了!
int j=0;
strcpy(p,init_data);
// p=init_data;
//token = strtok(&init_data,&separator);
token = strtok(p, separator);
// printf("%s\n", token);
for(int i=0;i<num;i++)
{
// if( (token = strtok(NULL, separator)) != NULL)
//printf("%s\n", token);
token = strtok(NULL, separator);
j++;
}
//printf("%s\n", token);
strcpy(aa,token);
return aa;
}
void main(void)
{
char str[] = "root:x:0:root:/root:/bin/bash:";
char str1[] = "root";
char a[32];
char b[32];
char c[32];
char d[32];
char e[32];
char f[32];
int w=0;
int num=3,j=0;
w=sizeof(str1);
printf("%d\n", w);
strcpy(a,split_data( str1,",",2));
printf("%s\n", a);
strcpy(b,split_data( str1,",",3));
printf("%s\n", b);
strcpy(c,split_data( str1,",",4));
printf("%s\n", c);
strcpy(d,split_data( str1,",",5));
printf("%s\n", d);
strcpy(e,split_data( str1,",",6));
printf("%s\n", e);
strcpy(f,split_data( str1,",",7));
printf("%s\n", f);
}