练习1-17 编写一个程序,打印长度大于80个字符的所有输入行。
代码如下:
#include <stdio.h> // 包含标准库的信息。 #define MAXROW 10 // 最大行数为10行。 #define MAXLINE 100 // 每行最大字符数为100个。 int getLength(char cs[]); int main() // 定义名为main的函数,它不接受参数值。 { int c, i, row; char cs[MAXROW][MAXLINE]; // 初始化10行的字符数组。 for (i = 0;i < MAXROW; i++) { cs[i][0] = ‘\0‘; } i = row = 0; while (row < MAXROW && (c = getchar()) != EOF) { // 将输入的每行放入数组中。 if (c != ‘\n‘) { if (i < MAXLINE - 2) { cs[row][i] = c; i++; } else { cs[row][MAXLINE - 1] = ‘\0‘; } } else { // 换行时,将这一行的最后以为添加‘\0‘。 if (i < MAXLINE - 2) cs[row][i] = ‘\0‘; // 移动到下一行。 row++; // 计数器清0。 i = 0; } } if (row == MAXROW) { printf("已输入了10行,开始进行统计...\n"); } // 输入字符大于10的行。 for (row = 0; row < MAXROW; row++) { if (getLength(cs[row]) > 10) { printf("%s\n", cs[row]); } } getchar(); // 防止控制台一闪而过,需要接受任意字符后在关闭控制台。 return 0; // 向执行环境返回一个整形,0代表执行成功。 } // 获得每行的长度。 int getLength(char cs[]) { int i = 0; while (cs[i++] != ‘\0‘) ; return i; }
个人理解:
限定了最大行数支持10行,每行100个字符,练习主要巩固了字符数组‘\0‘的用法。
时间: 2024-10-17 12:09:31