原创 指针实现同时读取并打印多行字符串

2010-1-8 10:57 1565 3 3 分类: MCU/ 嵌入式

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXLEN 1000
#define MAXLINES 5000
int getline(char *, int);
int readline(char *lineptr[], int maxlines);
void writeline(char *lineptr[], int nlines);
char *lineptr[MAXLINES];
int main(int argc, char *argv[])
{
 int nlines;
 if((nlines = readline(lineptr, MAXLINES)) >= 0)
 {
  writeline(lineptr, nlines);
  return 0;
 }
 else
  return -1;
}
#define MAXLEN 1000
int getline(char *, int);
int readline(char *lineptr[], int maxlines)
{
 int len, nlines;
 char *p, line[MAXLEN];


 nlines = 0;
 while((len = getline(line, MAXLEN)) > 0)
  if(nlines >= maxlines || (p = malloc(len)) == NULL)
   return -1;
  else
  {
   line[len - 1] = '\0';
   strcpy(p,line);
   lineptr[nlines++] = p;
  }
 return nlines;
}
void writeline(char *lineptr[], int nlines)
{
 int i;
 for(i = 0; i < nlines; i++)
  printf("%s\n", lineptr);
}
int getline(char s[], int lim)
{
   int c, i;
 for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
    {
      s = c;
    }
 if(c == '\n')
    {
      s[i++] = c;
    }
 s = '\0';
 return i;
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /1 下一条