指针数组以及指向指针的指针

#include <stdio.h>
#include <string.h>
#define MAXLINES 5000  /*进行排序的最大文本行*/
char *lineptr[MAXLINES]; /*指向文本行的指针数组*/
int readlines(char *lineptr[],int nlines);
void writelines(char *lineptr[],int left, int right);
/*对输入的文本行进行排序*/
main()
{
 int nlines;  /*读取的输入行数目*/
 if((nlines=readlines(lineptr,MAXLINES))>=0)
 {
  qsort(lineptr,0,nlines);
  return 0;
 }
 else
 {
  printf("error:input too big to sort\n");
  return 1;
 }
}
#define MAXLEN 1000  /*每个输入文本行的最大长度*/
int getline(char *, int);
char *alloc(int);
/*readlines函数:读取输入行*/
int radlines(char *lineptr[],int maxlines)
{
 int len,nlines;
 char *p,line[MAXLINE];
 nlines=0;
 while((len=getline(line,MAXLEN))>0)
  if(nlines>=maxlines||(p=alloc(len))==NULL)
   return -1;
  else
  {
   line[len-1]='\0';
   strcpy(p,line);
   lineptr[nlines++]=p;
  }
  return nlines;
}
/*writelines函数:写输出行*/
void writelines(char *lineptr[],int nlines)
{
 int i;
 for(i=0;i<nlines;i++)
  printf("%s\n",lineptr[i]);
}
 
posted @ 2019-11-22 14:02  烟火流沙  阅读(245)  评论(0编辑  收藏  举报