C Language 2
2015-07-08 15:51
176 查看
来自 The c Programming Language
字符数组是C 语言中最常用的数组类型。下面我们通过编写一个程序,来说明字符数组
以及操作字符数组的函数的用法。
该程序读入一组文本行,并把最长的文本行打印出来。该算法的基本框架非常简单:
while (还有未处理的行)
if (该行比已处理的最长行还要长)
保存该行为最长行
保存该行的长度
打印最长的行
从上面的框架中很容易看出,程序很自然地分成了若干片断,
分别用于读入新行、
测试读入的行、
保存该行,
其余部分则控制这一过程。
因为这种划分方式比较合理,所以可以按照这种方式编写程序。
/* getline: read a line into s, return length */
int getline(char s[],int lim)
{
int c, i;
for (i=0; i < lim-1 && (c=getchar())!=EOF && c!='\n'; ++i)
s[i] = c;
if (c == '\n') {
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
/* copy: copy 'from' into 'to'; assume to is big enough */
void copy(char to[], char from[])
{
int i;
i = 0;
while ((to[i] = from[i]) != '\0')
++i;
}
写的程序:
#include <stdio.h>
#define MAXLINE 1000 /* maximum input line length */
/* print the longest input line */
main()
{
int len; /* current line length */
int max; /* maximum length seen so far */
char line[MAXLINE]; /* current input line */
char longest[MAXLINE]; /* longest line saved here */
max = 0;
while ((len = getline(line, MAXLINE)) > 0)
if (len > max) {
max = len;
copy(longest, line);
}
if (max > 0) /* there was a line */
printf("%s", longest);
return 0;
}
程
相关文章推荐
- android--manifest中的largeHeap是干什么用的?
- 企业级搜索应用服务器Solr4.10.4部署开发详解(3)- Solr使用-使用java客户端solrj进行增删改查开发
- 最大工作量问题新的解法(不会证明)
- 几条 ffmpeg 的命令
- python进阶一:高阶函数
- 自定义view中利用onLayout判断键盘收起还是弹出
- Xutils框架用法
- linux每日5个命令
- LAMP环境安装禅道(源码安装)
- 网络运营为何而生?
- iOS MultipeerConnectivity 编程发送图片客户端
- redis缓存的安装和使用
- 阿里巴巴常考面试题及汇总答案
- android--dalvik heap 浅析
- MVC与三层架构的异同点
- LeetCode93:Restore IP Addresses
- STA分析(三)
- 6.原型模式(Prototype Pattern)
- 《权威指南》笔记 - 9.1-9.2 类和原型、构造函数
- 242 计算球体积