getword.c
资源名称:c.rar [点击查看]
上传用户:shmaik
上传日期:2014-06-01
资源大小:45093k
文件大小:1k
源码类别:

VC书籍

开发平台:

C/C++

  1. static char rcsid[] = "$Id: H:/drh/idioms/book/RCS/table.doc,v 1.13 1997/10/27 23:10:11 drh Exp $";
  2. #include <ctype.h>
  3. #include <string.h>
  4. #include <stdio.h>
  5. #include "assert.h"
  6. #include "getword.h"
  7. int getword(FILE *fp, char *buf, int size,
  8. int first(int c), int rest(int c)) {
  9. int i = 0, c;
  10. assert(fp && buf && size > 1 && first && rest);
  11. c = getc(fp);
  12. for ( ; c != EOF; c = getc(fp))
  13. if (first(c)) {
  14. {
  15. if (i < size - 1)
  16. buf[i++] = c;
  17. }
  18. c = getc(fp);
  19. break;
  20. }
  21. for ( ; c != EOF && rest(c); c = getc(fp))
  22. {
  23. if (i < size - 1)
  24. buf[i++] = c;
  25. }
  26. if (i < size)
  27. buf[i] = '';
  28. else
  29. buf[size-1] = '';
  30. if (c != EOF)
  31. ungetc(c, fp);
  32. return i > 0;
  33. }