Распечатать каждое слово предложения, меняя его первую букву на прописную - C (СИ)
Формулировка задачи:
Словом назовём всякую последовательность букв латинского алфавита длинны не более 20. Предложение
- всякую последовательность не более 30 слов, разделенных одним или несколькими пробелами, оканчивающуюся символом "." "!" "?". Написать программу, читающую заданное предложение, контролирующую его правильность и выполняющую функция, которая:
Распечатывает каждое слово предложения, меняя его первую букву на прописную, если необходимо.
Вот мой вариант кода:
Программа позволяет ввести строку, однако, не обрабатывает её... Объясните, пожалуйста, в чём у меня ошибка?
Листинг программы
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- char up(void)
- {
- int k = 0;
- int i = 0;
- char str[20];
- while ((str[i] != '.') || (str[i] != '!') || (str[i] != '?') || (k > 30))
- {
- char str[20];
- while (str[i] != ' ')
- {
- gets(str);
- }
- strupr(str[i]);
- printf("%s", str);
- k += 1;
- }
- }
- void main()
- {
- int i, k;
- char str[20];
- printf("Input ur string: ");
- up();
- }
Решение задачи: «Распечатать каждое слово предложения, меняя его первую букву на прописную»
textual
Листинг программы
- strupr(str[i]);
Объяснение кода листинга программы
В данном коде используется функция strupr
, которая принимает в качестве аргумента строку (предложение) и изменяет первую букву каждого слова в этой строке на прописную. Однако, код не полностью решает задачу, так как он не выводит измененное предложение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д