zoukankan      html  css  js  c++  java
  • C程序设计语言练习题1-22

    练习1-22  编写一个程序,把较长的输入行”折“成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后。要保证程序能够智能地处理输入行很长以及在制定的列前没有空格或制表符时的情况。

    代码如下:

    #include <stdio.h>    //    包含标准库的信息。
    
    #define MAXLINE 1000        //    每行最大字符数为1000个。
    
    #define BR 10    //    十个字符换一行。
    
    int getline(char line[], int maxline);
    
    int main()    //    定义名为main的函数,它不接受参数值。
    {
        int len;
        
        char line[MAXLINE];
    
        while ((len = getline(line, MAXLINE)) > 0) 
        {
            printf("%s
    ", line);
        }
    
        getchar();    //    防止控制台一闪而过,需要接受任意字符后在关闭控制台。
        return 0;    //    向执行环境返回一个整形,0代表执行成功。
    }
    
    int getline(char s[], int lim)
    {
        int c, i, j;
        c = i = j = 0;
        while(i < lim - 1 && (c = getchar()) != EOF && c != '
    ')
        {
            if (c == '
    ') {
                s[i++] = c;
            }
            else if ((i - j) % BR + 1 == BR)    //    需要折行。
            {
                if (c != '	' && c != ' ' && i != BR)    //    如果需要换行的位置是空格或者制表符,则忽略这个字符。
                {
                    s[i++] = c;
                    s[i++] = '
    ';
                    j++;
                }
            }
            else
                s[i++] = c;
        }
        if (s[i - 1] == '
    ')
            s[i - 1] = '';    //    若上一个字符是换行符则不在执行换行。
        else
            s[i] = '';
        return i;
    }

    个人理解:

    主要练习了向字符数组的某一位置插入一个字符。

  • 相关阅读:
    千氪公开课第一期|如何实现写作收益的最大化?-千氪
    2018年十大区块链投资机构盘点-千氪
    vscode 问题
    jquery点击输入框提示文字消失输入文字变色
    IE8兼容css3
    点击特定按钮,文本框实现输入状态变化
    h5页面在iOS上的问题解决
    纯css三角提示框,兼容IE8
    适配问题
    webstorm配置编译sass
  • 原文地址:https://www.cnblogs.com/DeadGardens/p/4793416.html
Copyright © 2011-2022 走看看