每行一个单词的形式打印输入

编写一个程序,以每行一个单词的形式打印其输入。

代码1:

#include <stdio.h>
#include <stdbool.h>
#include <ctype.h>
int main(void) {
int c;
while ((c = getchar()) != EOF) {
if (isspace(c)) {
printf("\n");
}
else {
printf("%c", c);
}
}
return 0;
}

执行结果:

hello world
hello
world
^Z

缺陷:单词之间有多个空格时每一个空格都会变成一个换行符,输出中有多个换行符。

例如:

hello world
hello
world
^Z

改进:用一个标记,显示当前是否处于一个单词内部。

代码2:

#include <stdio.h>
#include <stdbool.h>
#include <ctype.h>
int main(void) {
int c;
bool state = false;
while ((c = getchar()) != EOF) {
if (isspace(c)) {
if (state == true) {
printf("\n");
state = false;
}
}
else {
state = true;
printf("%c", c);
}
}
return 0;
}

执行结果:

hello world
hello
world
^Z
posted @   有空  阅读(12)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示