arg3.c 1014 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define MAXLINE 1000000
  4. // int getline(char *line, int max);
  5. int getfine(char* s, int maxline);
  6. /* getline: read a line into s, return length */
  7. int getfine(char* s, int maxline)
  8. {
  9. int c, i;
  10. for (i=0; ((c=getchar())!=EOF) && c!='\n'; i++)
  11. {
  12. *s = c;
  13. s++;
  14. }
  15. if (c == '\n')
  16. {
  17. *s = 0;
  18. ++i;
  19. }
  20. //printf("%d : len \n",i);
  21. return i;
  22. }
  23. /* find: print lines that match pattern from 1st arg */
  24. int main(int argc, char *argv[])
  25. {
  26. char line[MAXLINE];
  27. int found = 0;
  28. if (argc != 2)
  29. printf("Usage: find pattern\n");
  30. else
  31. while (getfine(line, MAXLINE) > 0)
  32. if (strstr(line, argv[1]) != NULL) {
  33. printf("%s \n", line);
  34. found++;
  35. // printf("found:%d\n",found);
  36. }
  37. return found;
  38. }