Вывод на консоль самого длинного слова - C (СИ)
Формулировка задачи:
#include <string.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <iostream.h> using namespace std; int main() {system("chcp 1251>0"); char s[8000]=""; FILE *F; if((F=fopen("D:\\PROBA2.txt","r"))==NULL) {printf ("Немогу открыть файл\n"); return 1;} char simvol, malloc(8000); for (int i = 0; (simvol=getc(F))!=EOF; i++) s[i]=simvol; fclose(F); printf ("D:\\PROBA2.txt\n\%s\n\n", s); int maxStart, maxLen=0, len=0; for (int i=0; i<strlen(s); i++) { if(s[i]!=' ' && s[i]!='\n' && i<strlen(s)-1) { len++; } else { if (i==strlen(s)-1){len++; i++;} if(len>maxLen){maxLen=len; maxStart = i-maxLen;} len=0; } } printf ("\nСлово(a) максимальной длины в файле PROBA.txt:\n\n"); for (int i=0l; i < strlen(s); i++) { if (s[i]!=' ' && s[i]!='\n' && i<strlen(s)-1) { len++; } else {if (i==strlen(s)-1){len++; i++;} if (len==maxLen) { for (int j=i-maxLen; j<=i; j++) { fputc (s[j], F); } } len=0; } } printf("\n Длинная самого длинного слова равна %d символов.\n", maxLen); getch(); }
Решение задачи: «Вывод на консоль самого длинного слова»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <locale.h> int main() { setlocale (LC_CTYPE, "Russian"); char buf [BUFSIZ], max_word [BUFSIZ]; int max_len = 0, count = 0; FILE *fin = fopen ("data.txt", "r"); if (!fin) { printf("Ошибка чтения файла\n"); return 1; } while (fscanf(fin, "%s", buf) != EOF) { if (strlen(buf) > max_len) { max_len = strlen(buf); strcpy (max_word, buf); } } fflush (fin); rewind (fin); while (fscanf(fin, "%s", buf) != EOF) { if (strcmp (max_word, buf) == 0) count++; } fclose (fin); printf ("Word: %s; Length: %d; Count: %d", max_word, max_len, count); getchar(); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с консолью и строками
- Устанавливаем русскую локаль для работы с русскими символами
- Объявляем переменные: буфер для чтения из файла, макс. слово и его длину, счётчик для подсчёта количества одинаковых слов
- Открываем файл «data.txt» для чтения
- В цикле считываем строки из файла и проверяем их длину, обновляя при необходимости значения макс. длины и самого длинного слова
- Сбрасываем указатель файла в начало для повторного чтения всех строк
- В цикле сравниваем каждое слово с самым длинным и увеличиваем счётчик при совпадении
- Выводим на экран самое длинное слово, его длину и количество совпадений
- Ждём нажатия любой клавиши для завершения работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д