Найти слово в текстовом файле - C (СИ)

Узнай цену своей работы

Формулировка задачи:

добрый день! как организовать поиск слова

while

в текстовом файле на СИ? Есть такой код на с++, необходимо переделать под си
if (s.find("while")!=string::pros)

Решение задачи: «Найти слово в текстовом файле»

textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
#include <string.h>
 
void modifyword(char* w);
 
int main()
{
   FILE * infile;
   int st = 0;
   char word [30], findword[30] = "while";
   infile = fopen ("file.txt" , "r");
   if (infile == NULL) perror ("Error opening file");
   else {    
     while (!feof(infile))
     {
         if(fscanf (infile, "%s", word)!= 1)
         {
             perror("File is empty");
         return -1;
         }
         modifyword(word);
        if(!strcmp(word, findword))
            { 
            printf("%s\n", word);  st++;
            }
    } 
     if(!st) puts("The word not found");
     fclose (infile);
   }
   return 0;
}
 
void modifyword(char* w)
{   // все кроме букв убираем в конце слова 
    int i = strlen(w), st = 0;
    char *ch = w;
    while(i)
    {
        if(isalpha(*(w + i)))
            break;
        i--;
    }
    *(w + i + 1) = '\0';
    ////////////////////////////////////////
    // все кроме букв убираем в начале слова 
    while(*w)
    {
        if(isalpha(*w)) st = 1;
        if(st)
          *(ch++) = *w ;
    w++;
    }
    *ch = '\0'; 
}

Объяснение кода листинга программы

  1. Объединение двух строк с помощью оператора конкатенации (==)
  2. Использование функции fopen для открытия файла
  3. Использование функции feof для проверки конца файла
  4. Использование функции fscanf для чтения слова из файла
  5. Вызов функции perror для вывода сообщения об ошибке
  6. Использование функции strcmp для сравнения двух строк
  7. Использование функции printf для вывода найденного слова
  8. Использование функции puts для вывода сообщения, что слово не найдено
  9. Использование функции fclose для закрытия файла
  10. Использование функции isalpha для проверки, является ли символ буквой
  11. Использование функции strlen для определения длины строки
  12. Использование оператора break для выхода из цикла
  13. Использование оператора i++ для перехода к следующему символу в строке
  14. Использование оператора w++ для перехода к следующему символу в строке
  15. Использование оператора (ch++) = w ; для переноса букв в новую строку
  16. Использование оператора *(ch) = '\0'; для добавления нулевого символа в новую строку
  17. Объединение двух строк с помощью оператора конкатенации (||)
  18. Использование функции strlen для определения длины строки
  19. Использование оператора i-- для перехода к предыдущему символу в строке
  20. Использование оператора break для выхода из цикла

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы