字符数组是C语言中最常用的数组类型。下面我们通过编写一个程序,来说明字符数组以
反操作字符数组的函数的用法。该程序读入一组文本行,并把最长的文水行打印出来。该算
法的基本框架非常简单:
while (还有未处理的行)
i f (该行比已处理的最长行还要长)
保存该行
保存该行的长度
打印最长的行
1 #include <stdio.h> 2 #include <stdlib.h> 3 #define MAXLENGTH 100//文本的最大长度 4 int getline(char line[],int limit); 5 void copyline(char to[],char from[]); 6 int main() 7 { 8 int length;//当前行的长度 9 int maxlength=0;//最大行的长度 10 char line[MAXLENGTH];//保存当前行的字符串 11 char longest[MAXLENGTH];//保存最大行的字符串 12 while((length=getline(line,MAXLENGTH))>0) 13 { 14 if(length>maxlength) 15 { 16 maxlength=length; 17 copyline(longest,line); 18 } 19 } 20 if(maxlength>0) 21 { 22 printf("%s",longest); 23 } 24 return 0; 25 } 26 /*getline函数:将输入的字符保存到line数组中,并返回数组长度*/ 27 int getline(char line[],int limit) 28 { 29 int c; 30 int i; 31 for(i=0;i<(limit-1)&&(c=getchar())!=EOF&&c!=' ';i++) 32 { 33 line[i]=c; 34 } 35 if(c==' ') 36 { 37 line[i]=c; 38 ++i; 39 } 40 line[i]='