C程序设计语言练习题1-17

练习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] = '';
    }

    i = row = 0;
    while (row < MAXROW && (c = getchar()) != EOF)
    {
        //    将输入的每行放入数组中。
        if (c != '
')
        {
            if (i < MAXLINE - 2)
            {
                cs[row][i] = c;
                 i++;
            }
            else
            {
                cs[row][MAXLINE - 1] = '';
            }
        }
        else
        {
            //    换行时,将这一行的最后以为添加''。
            if (i < MAXLINE - 2) cs[row][i] = '';
            //    移动到下一行。
            row++;
            //    计数器清0。
            i = 0;
        }
    }
    if (row == MAXROW) { printf("已输入了10行,开始进行统计...
"); }
    //    输入字符大于10的行。
    for (row = 0; row < MAXROW; row++)
    {
        if (getLength(cs[row]) > 10)
        {
            printf("%s
", cs[row]);
        }
    }

    getchar();    //    防止控制台一闪而过,需要接受任意字符后在关闭控制台。
    return 0;    //    向执行环境返回一个整形,0代表执行成功。
}

//    获得每行的长度。
int getLength(char cs[])
{
    int i = 0;
    while (cs[i++] != '') ; 
    return i;
}

个人理解:

限定了最大行数支持10行,每行100个字符,练习主要巩固了字符数组''的用法。

原文地址:https://www.cnblogs.com/DeadGardens/p/4781123.html