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

#include <stdio.h> int main() { char str[100]; // 声明一个足够长的字符数组来存储输入的数字字符串 // 1. 读取输入的数字字符串 if (scanf("%s", str) != 1) { return 0; } // 2. 遍历字符串中的每一个字符并格式化输出 for (int i = 0; str[i] != '\0'; i++) { // 如果不是第一个字符,就在前面打印一个空格,用来分隔数字 if (i > 0) { printf(" "); } printf("%c", str[i]); } printf("\n"); return 0; }
这段代码的功能是:读取一个数字字符串(例如 "12345"),然后将每个数字字符用空格分隔输出(例如 "1 2 3 4 5")。代码本身逻辑正确,能够完成基本任务。

- 注意 `scanf("%s", str)` 会读取连续的非空白字符,如果输入中包含空格或换行,读取会在空白处停止。如果输入的数字字符串本身包含空格(比如 "12 34"),程序只会读取第一个部分。考虑是否要处理这种情况。
- 如果输入的数字字符串长度超过 99 个字符(加上结尾的 '\0' 共 100 个),会导致数组越界。可以思考如何避免这种潜在问题。