Написать программу, которая: определяет количество символов в самом коротком слове
Задачи для тренировки программистов. Определить количество символов в самом коротком слове. Написать программу которая выводит ответ на экран
С помощью текстового редактора БЛОКНОТ создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна превышать 70 символов). Файл должен иметь расширение DAT. Написать программу, которая: — выводит текст на экран дисплея; — определяет количество символов в самом коротком слове. (На языке C, не С++)
Вот тут получилось вывести текст на экран и посчитать кол-во слов:
#include <stdio.h> #include <conio.h> #include <locale.h> #include <process.h> #include <string.h> #include <Windows.h> void menu(); // FILE* openFile(char*); void readAndWriteWorld(); void main() { setlocale(LC_CTYPE, "Russian"); system("cls"); fflush(stdin); menu(); //вызов функции } //Меню программы void menu() { int n = 0; //инициализация переменной puts("Выберите следующее действие:\n 1 - Вывод текста из файла на экран. Вывод количества слов в файле. \n 2 - Выход");//вывод сообщения на экран scanf_s("%d", &n); //ввод номера команды switch (n)//выбор введенной программы { case 1: {readAndWriteWorld(); break; } //вывод текста и подсчет слов case 2: {return; }//выход default: menu(); //возвращение в меню } } // Функция считывает и выводит содержание файла, а так же выводит количество слов void readAndWriteWorld() { fflush(stdin); char world; //объявление переменной int count = 1; //инициализация переменной char symble[70] = " ";//массив с пробелом char *name = new char[80]; // массив символов FILE *f; // объявление переменной char *str = new char[70]; //массив символов puts("\n Введите имя файла:"); //вывод на экран gets_s(name, 79);//ввод имени файла f = openFile(name); //вызов функции для открытия файла puts("\n Содержимое файла \n"); //вывод на экран if (!feof(f)) //если конец файла { world = fgetc(f); //считывание символа из файла if (strchr(symble, world) != NULL) //если есть символ "пробел" { count++; //+1 } while (!feof(f)) //пока не конец файла { printf("%c", world); //вывод символа { if (!feof(f)) //если не конец файла { world = fgetc(f); //считывание теста из файла if (strchr(symble, world) != NULL) //если символ пробел { count++; //+1 } } } } puts("\n"); //вывод на экран printf("%s", "Количество слов:"); //вывод на экран printf("%d", count); //вывод на экран puts("\n"); //вывод на экран } else { puts("Файл пуст!"); //вывод на экран } fclose(f); //закрытие документа delete[]str; //удаление массива menu(); //переход в меню } // Функция открытия файла FILE* openFile(char* name) { setlocale(LC_CTYPE, "Russian"); system("cls"); fflush(stdin); FILE* f; // объявление переменной if ((fopen_s(&f, name, "r")) != 0) //если не удалось открыть файл { printf("Ошибка открытия файла\n"); //вывод на экран menu(); //переход в меню } else { return f; //возвращение переменной с ссылкой на открываемый файл } }
А определить количество символов в самом коротком слове никак не получается. Помогите пожалуйста со вторым заданием
Этот материал впервые был опубликован 1 мая 2017 года. Актуальность информации подтверждена 16 января 2024 году.