Онлайн компилятор C

#include <stdio.h> #include <ctype.h> char next_digit(char c) { if (isdigit(c)) { if (c == '9') { return '0'; } else { return c + 1; } } return c; } int main() { char ch; while ((ch = getchar()) != '.') { if (isdigit(ch)) { putchar(next_digit(ch)); } else { putchar(ch); } } putchar('\n'); return 0; }
1) 这段代码从标准输入读取字符,直到遇到 '.' 为止。如果读取到数字字符,它会调用 `next_digit` 函数将其转换为下一个数字('9' 会变成 '0'),然后输出转换后的字符;如果是非数字字符,则直接原样输出。最后输出一个换行符。

2) 提示:
   - 注意 `getchar()` 返回的是 `int` 类型,用来正确处理 EOF,但这里只与 '.' 比较,所以用 `char` 类型存储也可以。
   - 思考一下:如果输入字符是 '9',`next_digit` 函数会返回什么?如果是其他数字呢?