Чтение из файла. Поиск палиндрома - 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, то выводится сообщение о том, что слово не является палиндромом.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д