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

#include <stdio.h> #include <string.h> int main() { char str[201]; fgets(str,sizeof(str) ,stdin); str[strcspn(str,"\n")]='\0'; for(int i=0;str[i]!='\0';i++){ if(str[i]==' '){ str[i]='_'; } }printf("%s\n",str) return 0; }
这段代码的功能是:从标准输入读取一行字符串(最多200个字符),然后将字符串中的所有空格字符替换为下划线,最后输出替换后的结果。

代码中有一个语法错误:在 `printf` 语句的末尾缺少了分号。

- 检查 `printf` 这一行,C语言中每条语句必须以分号结束。
- 注意 `fgets` 会保留换行符,代码中已经用 `strcspn` 去掉了换行符,这是正确的处理方式。