【发布时间】:2024-01-19 11:25:01
【问题描述】:
我编写了这个程序来查找用户输入的一行文本中的总位数。我在使用getchar() 时出错。我似乎无法弄清楚我做错了什么?
#include <stdio.h>
#define MAX_SIZE 100
void main() {
char c[MAX_SIZE];
int digit, sum, i;
digit, i = 0;
printf("Enter a line of characters>");
c = getchar();
while (c[i] != '\n') {
digit = 0;
if (c [i] >= '0' && c[i] <= '9') {
digit++;
}
}
printf("%d\n", digit);
}
我将使用 sum 变量添加我找到的所有数字。但我在getchar() 线上遇到错误。帮忙??
【问题讨论】:
-
c = getchar()-c是一个数组(因此无论其余部分如何,都不能直接赋值)。getchar()返回int。老实说,you don't need an array for this task at all,如果目的只是为了计算数字字符直到行尾或文件结束。 -
getchar获取单个字符。你应该使用fgets或类似的东西 -
..然后你不会在循环中增加
i。 -
一般情况下,如果您遇到错误,您应该发布错误内容。也就是说,cmets 已经涵盖了这一点。
-
好吧,根据你们提到的不使用数组我写了一些不使用数组的东西,就像这样:#include
void main() { char c;整数位,总和;数字 = 0; printf("输入一行字符>"); c = getchar();而 (c != '\n') { 数字 = 0; if (c >= '0' && c