Программа для нахождения самого длинного слова в тексте - Запись символа в конец строки - 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);
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Открываем файл для чтения
- Проверяем успешность открытия файла
- При успешном открытии файла, начинаем чтение символов из него
- Проверяем каждый символ на принадлежность к слову
- Если символ принадлежит слову, увеличиваем счетчик слова и записываем символ в строку
- Если символ не принадлежит слову, сбрасываем счетчик слова и очищаем строку
- Если слово закончено (достигнут конец файла или пробел), проверяем длину слова
- Если длина слова больше максимальной, обновляем максимальную длину и копируем слово в строку максимальной длины
- Сбрасываем счетчик слова и длину слова, продолжаем чтение файла
- Закрываем файл после окончания чтения
- Выводим на экран длину максимального слова и само максимальное слово
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д