为了账号安全,请及时绑定邮箱和手机立即绑定

C中的嵌套strtok函数问题

C中的嵌套strtok函数问题

C
慕桂英546537 2019-12-06 10:20:28
我有一个像这样的字符串:a;b;c;d;ef;g;h;i;j1;2;3;4;5我想逐个元素解析它。我使用了嵌套的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");    }}输出:token 2 atoken 2 btoken 2 ctoken 2 dtoken 2 e
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

曲折…… for循环本质上是在发现位置加写NUL'\ 0' strtok()的组合使用strchr()。它仅在创建和剖析该行的副本时才有效;否则,您将必须strlen(line)在循环的顶部进行调用并保存该长度,以将其添加到for循环控件第三部分的行中。

查看完整回答
反对 回复 2019-12-06
  • 3 回答
  • 0 关注
  • 681 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信