比这篇新的文章:
Codee#6738
比这篇旧的文章: 批处理外部命令是否存在判断
作者: apPZ, 点击712次, 评论(0), 收藏者(0), , 打分:
所有评论,共0条:( 我也来说两句)
比这篇旧的文章: 批处理外部命令是否存在判断
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 }
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条:( 我也来说两句)
代码
