我的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*/
{...}
谢谢你的回答。
答案 0 :(得分:1)
$ man strtok
是你的朋友。该例程会占用所有出现的分隔符组,并返回以null结尾的字符串的地址。
不要尝试计算空格,计算strtok(3)返回非空值的次数。