标题:关于strtok 第二个参数问题
只看楼主
xhxh
Rank: 2
等 级:论坛游民
威 望:2
帖 子:17
专家分:31
注 册:2019-2-20
结帖率:100%
已结贴  问题点数:20 回复次数:1 
关于strtok 第二个参数问题
程序代码:
    //声明
extern int spitString(const char *str, char c, char **myp, int *count);
int main() {
    char str[] = "asdas,12qwe,rer5434,2343fd,sdvg,gg,g";
    char c = ',';
    int count;
    char *myp[7];
    //判断函数是否成功执行
    int er = spitString(str,c,myp,&count);
    if (er != 0)
    {
        printf("spitString err  %d",er);
        return -1;
    }
    //打印*mup[7]每一行
    for (int i = 0; i < 7; i++)
    {
        printf("%s ",*(myp+i));
    }

    printf("  行数: %d\n",count);
    system("pause");
    return 0;
}
int spitString(const char *str, char c, char **myp, int *count) {
    if (str == NULL || c == NULL || myp == NULL || count == NULL)
    {
        return -1;
    }
    char *s = str;
    char *p;
    int i = 0;
    //这里 这里
    //p = strtok(s, ",");
    p = strtok(s, c);
    for (i = 0; p != NULL; i++)
    {
        *(myp + i) = p;
        //这里 这里
        //p = strtok(NULL,",");
        p = strtok(NULL,c);
    }
    *count = i;
    return 0;

}

p = strtok(s, ",");和p = strtok(NULL,c);  用","便没问题 为什么啊?  有大佬给解解惑吗?

[此贴子已经被作者于2019-3-13 17:53编辑过]

搜索更多相关主题的帖子: int str char count NULL 
2019-03-13 17:18
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:14 
strtok的原型是 char *strtok(char *s, char *delim)
试试 char *c = ",";

[此贴子已经被作者于2019-3-14 05:06编辑过]

2019-03-14 05:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-493560-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.620337 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved