Итоговый результат
Часть раздела Логика и управление потоком путешествия по C на Coddy. Урок 24 из 63.
Задание
ЛегкоЗавершите свою программу для работы с текстом, объединив все функции, созданные на предыдущих уроках, в один полный вывод. Ваша программа должна:
- Предложить пользователю ввести короткое предложение, напечатав:
Enter a sentence:(без перевода строки в конце: используйтеprintf("Enter a sentence: "), а неprintf("Enter a sentence: \n")) - Объявить символьный массив с именем
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: ");
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