您的位置:首页 > 其它

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;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: