Menu
Coddy logo textTech

Преобразование в верхний регистр

Часть раздела Логика и управление потоком путешествия по C на Coddy. Урок 23 из 63.

challenge icon

Задание

Легко

Расширьте программу для работы с текстом из предыдущего урока, добавив функцию преобразования в верхний регистр. Ваша программа должна:

  1. Предложить пользователю ввести короткое предложение, напечатав: Enter a sentence: (без перевода строки в конце)
  2. Объявить массив символов с именем sentence, состоящий из 200 элементов, для хранения введённых данных
  3. Использовать scanf со спецификатором формата %s для чтения одного слова от пользователя
  4. Напечатать сохранённое слово в формате: You entered: [word]
  5. Использовать strlen() для вычисления общего количества символов в слове
  6. Напечатать количество символов в формате: Character count: [count]
  7. Напечатать длину с использованием strlen() в формате: Length: [length]
  8. Пройти в цикле по каждому символу в слове, чтобы подсчитать гласные
  9. Для каждого символа проверить, является ли он гласной (a, e, i, o, u) в нижнем и верхнем регистре
  10. Вести текущий подсчёт найденных гласных
  11. Напечатать количество гласных в формате: Vowel count: [count]
  12. Напечатать 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;
}

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор C