Написать программу, которая: определяет количество символов в самом коротком слове

Задачи для тренировки программистов. Определить количество символов в самом коротком слове. Написать программу которая выводит ответ на экран

С помощью текстового редактора БЛОКНОТ создать файл, содержащий текст, длина которого не превышает 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 году.