Чтение из файла. Поиск палиндрома - 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);
- }
Объяснение кода листинга программы
- В цикле while происходит чтение из файла с помощью функции fscanf. В качестве параметра функции указывается файл, а в качестве формата – строка
%s
, которая означает, что будет прочитана строка (без пробелов). Переменная str предназначена для хранения прочитанной строки. - Если проверка на палиндром (функция check) возвращает 1, то выводится сообщение о том, что слово является палиндромом.
- Если проверка на палиндром (функция check) возвращает 0, то выводится сообщение о том, что слово не является палиндромом.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д