曲径通幽论坛

标题: strtok() -- 拆解字符串 [打印本页]

作者: beyes    时间: 2010-6-19 22:31
标题: strtok() -- 拆解字符串
原型
#include <string.h>
char *strtok(char *str, const char *delim);

说明
该函数将一个字符串进行分解成各个标记。一般的,这些标记都会被分隔符隔开(如文章中的逗号,双引号,句号等标点符号)。
在第一次使用该函数时,必须在第 1 个参数中指定字符串,而在后续对该函数的使用时,由于解析的是同一个字符串,所以此时 str 需要指定为 NULL 。第 2 个参数是要分解字符串的分隔符。每次调用该函数时,返回的是一个非空指针,该指针指向下一个标记。所以,如果一直调用该函数,那么该函数最终返回的是一个空的指针。

描述虽然复杂,用代码看上去则显得直观且易于理解:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char str[128] = {"100,101,102,103,104,105"};

    int i;

    char *g;

    for (i = 0, g = strtok(str, ","); g != NULL; g = strtok (NULL, ","), i++)
        printf ("%s\n", g);

    return (0);
}
运行与输出
 ./strtok
100
101
102
103
104
105





欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2