Итоговый результат
Часть раздела Логика и управление потоком путешествия по C на Coddy. Урок 24 из 63.
Задание
ЛегкоЗаверши программу для работы с текстом, объединив все функции, созданные на предыдущих уроках, в единый полный вывод. Программа должна:
- Предложить пользователю ввести короткое предложение, выведя:
Enter a sentence:, а затем символ новой строки, как на предыдущих уроках - Объявить массив символов с именем
sentenceиз 200 элементов для хранения введённых данных - Использовать
scanfсо спецификатором формата%s, чтобы прочитать одно слово от пользователя - Сохранить исходное слово в отдельном массиве символов для вывода
- Вычислить общее количество символов с помощью
strlen() - Подсчитать гласные, проходя по каждому символу и проверяя, совпадает ли он с какой-либо гласной (a, e, i, o, u) в нижнем или верхнем регистре
- Преобразовать слово в верхний регистр с помощью функции
toupper()в цикле - Вывести все результаты в аккуратном, упорядоченном формате, разместив каждый элемент информации на отдельной строке
Не забудь подключить заголовочный файл <string.h> для функций обработки строк и заголовочный файл <ctype.h> для функций преобразования символов.
Результаты должны отображаться в следующем точном формате:
Enter a sentence:
Original: [word]
Characters: [count]
Vowels: [count]
Uppercase: [WORD]Важно: После подсказки Enter a sentence: идёт символ новой строки, как на предыдущих уроках. Слово Original: начинается со следующей строки.
Например, если введено:
HelloРезультат должен быть таким:
Enter a sentence:
Original: Hello
Characters: 5
Vowels: 2
Uppercase: HELLOЭто итоговое задание объединяет все разработанные тобой в ходе проекта функции обработки текста: обработку ввода, подсчёт символов с помощью strlen(), подсчёт гласных с помощью циклов и условных операторов, а также преобразование в верхний регистр с помощью toupper(). Программа должна выводить аккуратную и упорядоченную сводку результатов анализа текста.
Попробуйте сами
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char sentence[200];
printf("Enter a sentence: \n");
scanf("%s", sentence);
printf("You entered: %s\n", sentence);
int length = strlen(sentence);
printf("Character count: %d\n", length);
printf("Length: %d\n", length);
int vowel_count = 0;
for (int i = 0; i < length; i++) {
char c = sentence[i];
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
vowel_count++;
}
}
printf("Vowel count: %d\n", vowel_count);
printf("Uppercase: ");
for (int i = 0; i < length; i++) {
printf("%c", toupper(sentence[i]));
}
printf("\n");
return 0;
}Все уроки раздела Логика и управление потоком
1Основы указателей
Что такое указатель?Объявление указателейОператор взятия адреса (&)Оператор разыменования (*)Указатели NULLИтоги: Основы указателей4Проект: Простая текстовая утилита
Обзор проектаПодсчет символов2Указатели и массивы
Имена массивов как указателиЭлементы массива — указателиАрифметика указателейСравнение указателейИтоги: Обход массива через указатели5Указатели и функции
Передача по значениюПередача указателей в функцииИзменение переменных через указателиКлассический пример: SwapПередача массивов в функцииИтоги: указатели как аргументы функций8Структуры и указатели
Указатели на структурыОператор «стрелка» (->)Передача структур по значениюПередача указателей на структурыДинамическое выделение памяти для структурИтоги: Изменение структур через указатели11Итоговые задачи на повторение
Повторение: динамическая конкатенация строкПовторение: массив структурПовторение: счетчик частоты слов3Символьные массивы и строки
Строки как массивы charНуль-терминаторВвод строк с помощью scanfИспользование strlen()Использование strcpy()Использование strcat()Использование strcmp()Итоги: основные строковые функцииПотренируйтесь самостоятельно: Онлайн-компилятор C