小编mau*_*ust的帖子

C中嵌套的strtok函数问题

我有一个像这样的字符串:

a;b;c;d;e
f;g;h;i;j
1;2;3;4;5
Run Code Online (Sandbox Code Playgroud)

我想逐个元素地解析它.我使用嵌套的strtok函数,但它只是拆分第一行并使令牌指针为null.我怎么能克服这个?这是代码:

token = strtok(str, "\n");

while(token != NULL && *token != EOF)
{
    char a[128], b[128];
    strcpy(a,token);
    strcpy(b,a);
    printf("a:%s\n",a);
    char *token2 = strtok(a,";");
    while(token2 != NULL)
    {
        printf("token2 %s\n",token2);
        token2 = strtok(NULL,";");
    }
    strcpy(token,b);
    token = strtok(NULL, "\n");
    if(token == NULL)
    {
        printf("its null");
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

token 2 a
token 2 b
token 2 c
token 2 d
token 2 e
Run Code Online (Sandbox Code Playgroud)

c nested token tokenize strtok

14
推荐指数
2
解决办法
2万
查看次数

标签 统计

c ×1

nested ×1

strtok ×1

token ×1

tokenize ×1