第1章 导言-09 1.9 字符数组 // 字符数组是 C 语言中最常用的数组类型。// 下面我们通过编写一个程序来说明字符数组以及操作字符数组的函数的用法。// char_array.c#include stdio.h#define MAXL
第1章 导言 -09
1.9 字符数组
// 字符数组是 C 语言中最常用的数组类型。
// 下面我们通过编写一个程序来说明字符数组以及操作字符数组的函数的用法。
// char_array.c
#include <stdio.h>
#define MAXLINE 1000 /* 允许的输入行的最大长度 */
int getline1(char line[], int maxline);
void copy(char to[], char from[]);
/* 打印最长的输入行 */
int main()
{
int len; /* 当前行长度 */
int max; /* 目前为止发现的最长行的长度 */
char line[MAXLINE]; /* 当前的输入行 */
char longest[MAXLINE]; /* 用于保存最长的行 */
max = 0;
while ((len = getline1(line, MAXLINE)) > 0)
if (len > max) {
max = len;
copy(longest, line);
}
if (max > 0) /* 存在这样的行 */
printf("%s", longest);
return 0;
}
/* getline1函数: 将一行读入 s 中并返回其长度 */
int getline1(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函数: 将 from 复制到 to ;这里假定 to 足够大 */
void copy(char to[], char from[])
{
int i;
i = 0;
while ((to[i] = from[i]) != '\0')
++i;
}