The+C+Programming+Language字符数组例子

//读入一串文本行,并把最长的文本行输出出来

#include <stdio.h>
#define MAXLINE 100;
int getLine( char line[],int maxline);
void copy(char to[], const char from[]);
int main(){

    int len;//一行的字符长度
    char line[100]; /* current input line ,当前的输入行*/
    char longest[100];
    int max =0;
    //先编写一个读取行文本的函数,以便于读取文本
   while((len = getLine(line,100)) > 0  ){
        if(len >max){
            max = len;
            copy(longest,len);
        }
   }
    if(max >0){
        printf("%s",longest);
    }
    return  0;



}
//该函数的形参为字符数组与行字符长度限制
int getLine(char s[],int lim){
    //利用传入的字符数组存取一行的字符
    int c,i;
    for(i=0;i<lim-1 && (c=getchar()) != EOF && c != '\n';i++){
        //将读取输入的字符放入s[]字符数组中
        s[i] = c;
    }
    if(c=='\n'){
        s[i] = c;
        ++i;
    }
    s[i] = '\0';//getline 函数把字符'\0'(即空字符,其值为 0)插入到它创建的数组的末尾,以标记
                // 字符串的结束。
    return  i;//返回当前行字符长度
}

void copy(char to[], const char from[]){
    int i;
    i = 0;
    while((to[i] = from[i]) != '\0'){
        ++i;
    }

}

猜你喜欢

转载自blog.csdn.net/fuhuangjjj/article/details/88960498