Программа для нахождения самого длинного слова в тексте - Запись символа в конец строки - C (СИ)
Формулировка задачи:
Работающая программа для нахождения самого длинного слова в тексте. Но хотелось бы, чтобы она параллельно записывала самое длинное слово.
Думал задать пустую строку и туда записывать символы по порядку вот на этом моменте:
Но реализовать не могу...
if (((ch >= 'A')&&(ch <= 'Z')) || ((ch >= 'a')&&(ch <= 'z'))) { bword = 1;
#include <stdio.h> unsigned short main() { FILE *fl; char ch; unsigned char bword; unsigned char maxword = 0; unsigned char lenword = 0; fl = fopen("Ekz1.txt","r"); if (fl == NULL) { perror("Error in opening file"); return(-1); } while (!(feof(fl)) ) { ch=fgetc(fl); if (((ch >= 'A')&&(ch <= 'Z')) || ((ch >= 'a')&&(ch <= 'z'))) { bword = 1; } else bword = 0; if (bword == 1) lenword+=1; else if((bword == 0)&&(lenword != 0)&&(lenword >= maxword)) { maxword = lenword; lenword = 0; sf[50]=st[50]; st[50]=" "; } else lenword = 0; } printf("%d", maxword); fclose(fl); return (0); }
Решение задачи: «Программа для нахождения самого длинного слова в тексте - Запись символа в конец строки»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main() { FILE *fl; char ch, st[80] = "", sf[80] = ""; int maxword = 0, bword = 0, lenword = 0, i = 0; fl = fopen("file1.txt","r"); if (fl == NULL){ perror("Error in opening file"); return(1); } while(1){ ch=fgetc(fl); if (((ch >= 'A')&&(ch <= 'Z')) || ((ch >= 'a')&&(ch <= 'z'))){ bword = 1; st[i] = ch; ++i; lenword++; } else bword = 0; if(!bword || !ch){ if(lenword > maxword){ maxword = lenword; sf[maxword] = '\0'; for(i = maxword - 1; i >= 0; --i) sf[i] = st[i]; } i = 0; lenword = 0; } if(ch == EOF)break; } printf("%d\n", maxword); puts(sf); fclose(fl); return (0); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Открываем файл для чтения
- Проверяем успешность открытия файла
- При успешном открытии файла, начинаем чтение символов из него
- Проверяем каждый символ на принадлежность к слову
- Если символ принадлежит слову, увеличиваем счетчик слова и записываем символ в строку
- Если символ не принадлежит слову, сбрасываем счетчик слова и очищаем строку
- Если слово закончено (достигнут конец файла или пробел), проверяем длину слова
- Если длина слова больше максимальной, обновляем максимальную длину и копируем слово в строку максимальной длины
- Сбрасываем счетчик слова и длину слова, продолжаем чтение файла
- Закрываем файл после окончания чтения
- Выводим на экран длину максимального слова и само максимальное слово
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д