gpt4 book ai didi

c - 如何找到输入的长度

转载 作者:太空宇宙 更新时间:2023-11-04 08:12:10 24 4
gpt4 key购买 nike

我正在尝试测量我的输入有多少个数字。如果我输入以下行:1 2 65 3 4 7,我希望输出为 8。但我得到的是 1 2 3 4。

#include <stdio.h>
int main(void) {
int data;
int i = 1;
while (i <= sizeof(data)) {
scanf("%d", &data)
printf("%d", i);
i++;
}
}

最佳答案

您正在打印与输入完全无关的i。所以无论你输入什么,你都会得到 1234

sizeof(data)sizeof(int) 相同,即在您的系统上值为 4 的常量。

如果你想统计数字的个数而不关心单个数字的值,你可以这样做:

#include <stdio.h>
#include <ctype.h>

int main(void) {
char s[1024];
char* p;
int i = 0;
fgets(s, 1024, stdin);
p=s;

while (*p != '\0')
{
if (!isdigit(*p))
{
p++;
}
else
{
i++; // Found new number

// Search for a delimiter, i.e. skip all digits
p++;
while (*p != '\0' && isdigit(*p))
{
p++;
}
}
}

printf("We found %d numbers", i);

return 0;
}

输出:

We found 6 numbers

请注意,此代码将接受任何非数字输入作为分隔符。

关于c - 如何找到输入的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38607575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com