练习1-12 编写一个程序,以每行一个单词的行驶打印其输入。
代码如下:
#include <stdio.h> // 包含标准库的信息。 int main() // 定义名为main的函数,它不接受参数值。 { printf("======将输入的字符以每行一个单词的行驶打印其输出======\n"); int c, cp; while ((c = getchar()) != EOF) { // 判断输入的字符如果是空格或者制表符,说明单词键入完毕。 if (c == ‘ ‘ || c == ‘\t‘) { // 这里判断是否换行,如果上一次输入的字符还是空格或者制表符,则不换行。 if (cp != ‘ ‘ && cp != ‘\t‘) { printf("\n"); } } else putchar(c); // 将本次输入的字符存放到变量cp中,留作下次判断,作用为去除连续的空格和制表符。 cp = c; } getch(); // 防止控制台一闪而过,需要接受任意字符后在关闭控制台。 return 0; // 向执行环境返回一个整形,0代表执行成功。 }
个人理解:
该练习使用到了1-9中的算法,用于取出连续的空格或制表符。
并用if-else判断后进行输出。
时间: 2024-10-13 12:59:53