Advertisement
Guest User

Untitled

a guest
Feb 26th, 2020
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <dirent.h>
  4. #include <string.h>
  5. #include <ctype.h>
  6.  
  7. int open_files(char *name, char *way, char *keywords);
  8. int get_word(char *keywords, int i, char *word);
  9. int search_word(char *word, FILE *file);
  10.  
  11. int main()
  12. {
  13. char *keywords;
  14. scanf("Enter keywords: %s",keywords);
  15. // char *keywords="flag hello keyword";
  16.  
  17. DIR *dir;
  18. struct dirent *entry;
  19.  
  20. char *dirinput="./search/";
  21. dir = opendir(dirinput);
  22. if (dir == NULL)
  23. {
  24. perror("error dir open =(");
  25. return 1;
  26. }
  27.  
  28. while ( (entry = readdir(dir)) != NULL)
  29. {
  30. char *name = entry->d_name;
  31. printf("%s\n", name);
  32.  
  33. if (strcmp(name,"..")==0 || strcmp(name,".")==0)
  34. continue;
  35.  
  36. char way[50] = "./search/";
  37. if (open_files(name,way,keywords))
  38. return 1;
  39.  
  40.  
  41. // while (getc(file) != EOF)//
  42. // {
  43.  
  44. // }
  45.  
  46. // fclose(file);
  47.  
  48. }
  49. closedir(dir);
  50. return 0;
  51. }
  52.  
  53. int open_files(char *name, char *way, char *keywords)
  54. {
  55. strcat(way,name);
  56. FILE *file;
  57. file = fopen(way,"rwe");
  58. if (file == NULL)
  59. {
  60. perror("error file open )=");
  61. return 1;
  62. }
  63.  
  64. char *word;
  65. int i=0;
  66. while((i=get_word(keywords, i, word)) != -1)
  67. {
  68. if (search_word(word,file))
  69. printf("%s\n", way);
  70. }
  71.  
  72. fclose(file);
  73. return 0;
  74. }
  75.  
  76. int get_word(char *keywords, int i, char *word)
  77. {
  78. for (i; i<strlen(keywords); i++)
  79. {
  80. if (!isblank(keywords) && keywords != "\n")
  81. keywords[i] = word[i];
  82.  
  83. else
  84. return -1;
  85. }
  86. return i;
  87. }
  88.  
  89. int search_word(char *word, FILE *file)
  90. {
  91. char sym;
  92. char *fileword;
  93. int j=0;
  94. while ((sym=getc(file)) != EOF)
  95. {
  96. if (!isspace(sym))
  97. {
  98. fileword[j]=sym;
  99. j++;
  100. }
  101. j=0;
  102.  
  103. if (!strcmp(word,fileword))
  104. return 1;
  105. }
  106. return 0;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement