比这篇新的文章: Codee#6738
比这篇旧的文章: 批处理外部命令是否存在判断

Codee#6730

语言: C, 标签: 无  2009/09/29发布 2年前更新
作者: apPZ, 点击712次, 评论(0), 收藏者(0), , 打分:

背景
主题: 字体:
C语言: Codee#6730
01 #include <stdio.h>
02 #include <stdlib.h>
03 #include <string.h>
04
05 char *mystrtok(char *str, const char *delim);
06
07 int main(void) {
08
09         char str[] = "root:x::0:root:/root:/bin/bash:";
10         char *token;
11
12         token = mystrtok(str, ":");
13         printf("%s\n", token);
14         while ( (token = mystrtok(NULL, ":")) != NULL)
15                 printf("%s\n", token);
16
17         free(token);
18         return 0;
19 }
20 char *mystrtok(char *str, const char *delim) {
21
22         static char *last;
23         char *t;
24         int i = 0;
25
26         if ((NULL == str) && ((str=last) == NULL ))
27                 return (NULL);
28
29         last = strstr(str, delim);
30
31         if (NULL == last) {
32                 return NULL;
33         } else {
34                 t = malloc(strlen(str) + 1);
35                 memset(t, 0, strlen(t));
36                 for(i=0; i < (strlen(str) - strlen(last)); ++i) {
37
38                         t[i] = str[i];
39                 }
40
41                 while(last == strstr(last, delim))
42                      *last++;
43                 return t;
44         }
45 }


所有评论,共0条:( 我也来说两句)


发表评论

注册登录后再发表评论