Online Compiler C

#include <stdio.h> int is_digit(char c); int main(void) { int c; while ((c = getchar()) != EOF && c != '.') { if (is_digit((char)c)==1) { printf("1"); }else printf("0"); } }
这段代码的功能是:从标准输入读取字符,直到遇到文件结束符(EOF)或句点(.)为止。对于每个读取的字符,如果它是数字字符('0'到'9'),则输出"1",否则输出"0"。但代码中缺少了 `is_digit` 函数的实现,这会导致链接错误。

- 你声明了函数 `is_digit`,但没有定义它。你需要补充这个函数的实现,让它判断字符是否为数字字符('0'到'9')。
- 注意 `getchar()` 返回的是 `int` 类型,你将其赋值给 `int c` 是正确的,但在调用 `is_digit` 时强制转换为 `char` 可能会丢失信息(比如EOF值),不过在这个循环条件下不会遇到EOF,所以暂时没问题。但更好的做法是保持类型一致。