C语言 如何找出数组中有多少数字



编辑:好的,所以答案是由@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] 转换为数字。

最新更新