练习1-16  修改打印最长文本行的程序的主程序main,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本。

代码如下:

#include <stdio.h>    //    包含标准库的信息。

#define MAXLINE 10

int getline(char line[], int maxline);

int main()    //    定义名为main的函数,它不接受参数值。
{
int len;
int max;
char line[MAXLINE];
while ((max = getline(line, MAXLINE)) > )
{
printf("输入的行的字符数为:%d。内容是%s\n", max, line);
}
printf("程序结束。"); getchar(); // 防止控制台一闪而过,需要接受任意字符后在关闭控制台。
return ; // 向执行环境返回一个整形,0代表执行成功。
} int getline(char s[], int lim)
{
int c, i, j;
j = ;
for (i = ; (c = getchar()) != EOF && c != '\n'; ++i)
{
if (i <= lim - ) // 如果数组还剩下一个就装满了,则不在将字符放入数组。
s[i] = c;
++j; // 但行字符计数器仍然+1。
} if(j > lim) s[lim - ] = '\0'; // 如果输入的字符长度大于数组长度,则数组最后一位写入'\0'。
else s[i + ] = '\0'; // 否则将有效字符后写入'\0'。
return j;
}

个人理解:

练习的主要目的是对char类型数组中有效位后的'\0'的理解。

最新文章

  1. UDP打洞、P2P组网方式研究
  2. 20145212 实验四《Andoid开发基础》
  3. Avalon学习
  4. 0001-Weekly Meeting on 13th and 20th March, 2015
  5. jQuery的插入
  6. (转)8 reviews about de novo genome assembly
  7. UVa 808 (建坐标系、找规律) Bee Breeding
  8. (转)smarty实现多级分类的方法
  9. 【转】android 物理按键
  10. BZOJ 4010: [HNOI2015]菜肴制作( 贪心 )
  11. 给EditText中的图片加监听
  12. vuex的使用
  13. 【linux】Python3.6安装报错 configure: error: no acceptable C compiler found in $PATH
  14. MySQL技术内幕读书笔记(六)——索引与算法之全文索引
  15. iOS 实现单个页面支持横竖屏,其他页面只能竖屏
  16. Opening Ceremony(贪心)
  17. git 本地仓库与远程仓库建立连接
  18. Go学习笔记01-环境搭建
  19. Windows下用户变量和系统变量
  20. golang学习笔记15 golang用strings.Split切割字符串

热门文章

  1. iOS 应用程序本地化
  2. poj3624背包问题(一维数组)
  3. MyBatis完全使用指南
  4. docker 镜像中包含数据库环境和运行环境
  5. Qt 发送 https 请求
  6. MySQL的优化点总结---通过计算多种状态的百分比看MySQL的性能情况
  7. 利用systemtap学习Linux路由代码
  8. 使用DBOutputFormat把MapReduce产生的结果集导入到mysql中
  9. Excel VBA批量修改文件夹下的文件名
  10. FastDFS配置说明(中英文)