指针数组以及指向指针的指针
#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]);
}
#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]);
}