编辑:好的,所以答案是由@Mischo5500告诉的。谢谢大家,伙计们
如何找出数组中除空格外有多少个数字?我的程序将找出数组的长度,直到用户输入将是空格,这就是问题所在。因此,如果我插入了"10 20 300",则长度将为2。我期望3,就像三个数字,入。而且我不知道,用户会输入多少数字。我已经尝试过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;
}
如果我正确(对不起,如果没有),您要计算输入的浮点值的数量。以字符串格式插入它们并在处理后将它们转换为浮点数更容易,如果您不知道参数的数量,则会输入。下面是代码的外观,例如,浮点数位于变量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);
}
命令行参数的形式接收用户输入,这些输入作为传递给程序
int main(int argc, char *argv[])
这将为您提供整个参数长度。您可以将每个参数 argv[i] 转换为数字。