Menu
Coddy logo textTech

Итоговый результат

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

challenge icon

Задание

Легко

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

  1. Предложить пользователю ввести короткое предложение, напечатав: Enter a sentence: (без перевода строки в конце: используйте printf("Enter a sentence: "), а не printf("Enter a sentence: \n"))
  2. Объявить символьный массив с именем sentence, содержащий 200 элементов, для хранения введённых данных
  3. Использовать scanf со спецификатором формата %s, чтобы считать одно слово от пользователя
  4. Сохранить исходное слово в отдельном символьном массиве для отображения
  5. Вычислить общее количество символов с помощью strlen()
  6. Подсчитать гласные, перебирая каждый символ и проверяя, совпадает ли он с какой-либо гласной (a, e, i, o, u) в нижнем или верхнем регистре
  7. Преобразовать слово в верхний регистр с помощью функции toupper() в цикле
  8. Вывести все результаты в чистом, организованном формате, разместив каждую часть информации на отдельной строке

Не забудьте подключить заголовок <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;
}

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

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