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