如何找出除空格外数组中的数字?我的程序会找出数组的长度,直到用户输入为空格,这就是问题所在。所以,如果我插入" 10 20 300",长度将是2.我预期3,就像三个数字一样,插入了。我不知道,用户输入的数量是多少in。我已经尝试过strlen(p),这是同样的事情。你能帮助我吗?谢谢!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
float p[1000];
scanf("%f",p);
int length=(sizeof(p)/sizeof(float));
printf("%d",length);
return 0;
}
答案 0 :(得分:1)
如果我正确(如果没有,则抱歉),您想要计算输入的浮点值的数量。您可以更容易地以字符串格式插入它们并在处理后将它们转换为float,如果您不知道将要输入的参数数量。以下是您的代码的外观,例如,浮点数是val
变量,插入值的数量位于length
变量。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char p[1000];
float val[1000];
int length = 0;
char* itr;
fgets(p, sizeof(p), stdin);
itr = strtok(p, " ");
while(itr != NULL)
{
val[length] = atof(itr);
itr = strtok(NULL, " ");
length++;
}
printf("%d",length);
return 0;
}
编辑:如果你想要第一个元素的“长度”,只需在第一个标记上使用strlen()
itr = strtok(p, " \n");
if(itr)
{
length = strlen(itr);
val[length] = atof(itr);
}
答案 1 :(得分:-1)
您可以以命令行参数的形式接收用户输入,这些参数将作为
传递给程序int main(int argc, char *argv[])
这将为您提供整个论点。您可以将每个参数argv [i]转换为数字。