C:strtod循环,计算空格

时间:2015-03-22 17:05:02

标签: c

我的C项目遇到了一些麻烦。 我使用fgets(line, 1024, stdin)读了一行。在行中,应该有4个用白色空格分隔的参数,如果没有,程序应该写一个警告。像这样:

"1f 2 4 34" --> "ok"
"af b v" --> "warning"
"a bbgd c v d" --> "warning"

我正在考虑使用“strtod”函数循环,但我不确定如何。这是我的想法:

    char * ptr;
    int i = 0;
    ptr= strtok (line," ");
    while (ptr!= NULL) /*I would like to count the white spaces*/
    {
        i++;
        ptr= strtok (NULL, " "); /*I suppose this part is not correct*/
    }

    if(i != 3) /*3 white spaces --> 4 arguments*/
    {...}

谢谢你的回答。

1 个答案:

答案 0 :(得分:1)

$ man strtok

是你的朋友。该例程会占用所有出现的分隔符组,并返回以null结尾的字符串的地址。

不要尝试计算空格,计算strtok(3)返回非空值的次数。