Чтение из файла. Поиск палиндрома - C (СИ)

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

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

Здравствуйте, столкнулся с проблемой в цикле. 2 раза выводится на экран последнее сообщение.
 #include <stdio.h>
#include <string.h>
 
int check (char str[])
{
   int i,length;
   length=strlen(str);
   if (length==1) return 0; 
                    
   for (i=0;i<length;i++)
      if (str[i]!=str[(length-1)-i]) return 0;
         return 1;
}
 
int main()
{
    char str[80]; 
    FILE *file;
    
    if ((file=fopen("test.txt","r"))==NULL)
  {       
      puts("File not found!");
   return 1;
  }
 
    while(!feof(file)) 
    {
        fscanf(file, "%s", str);
        if (check(str)==1)
        printf (" \n Slovo: %s Palindrome \n", str);
            else 
            printf("\n SLOVO: %s Not palindrome \n",str);
   
    }   
   return 0;
}

Решение задачи: «Чтение из файла. Поиск палиндрома»

textual
Листинг программы
    while(fscanf(file, "%s", str) == 1)
    {
        //fscanf(file, "%s", str);
        if (check(str)==1)
            printf (" \n Slovo: %s Palindrome \n", str);
        else
            printf("\n SLOVO: %s Not palindrome \n",str);
 
    }

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

  1. В цикле while происходит чтение из файла с помощью функции fscanf. В качестве параметра функции указывается файл, а в качестве формата – строка %s, которая означает, что будет прочитана строка (без пробелов). Переменная str предназначена для хранения прочитанной строки.
  2. Если проверка на палиндром (функция check) возвращает 1, то выводится сообщение о том, что слово является палиндромом.
  3. Если проверка на палиндром (функция check) возвращает 0, то выводится сообщение о том, что слово не является палиндромом.

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


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

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

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