Условие
Обычная задача обработки текстов — преобразовать первую букву каждого слова в строке в заглавную. Задана строка, содержащая слова из прописных букв, разделенных одним или несколькими пробелами. Выведите идентичную ей строку, за исключением того что первую букву каждого слова следует сделать заглавной.
Входные данные
Строка из слов, состоящих из прописных букв $’a’$ — $’z’$, разделенных одним или несколькими пробелами. Длина строки не более $50$ символов.
Выходные данные
Выведите строку, идентичную входной, в которой первая буква каждого слова преобразована в заглавную.
Тесты
№ | Входные данные | Выходные данные |
1 | introduction to algorithms | Introduction To Algorithms |
2 | more than one space between words | More Than One Space Between Words |
3 | hello world | Hello World |
4 | string or c string | String Or C String |
Решение
Для решения данной задачи необходимо, во-первых, прочитать строку. Используем для этого в первом решении getline(cin, s); и cin.getline(s, 51); во втором, так как есть необходимость читать несколько пробелов. Далее делаем первый символ заглавным с помощью toupper(s[0]), а затем проверяем все остальные символы, начиная с третьего и делаем первые символы в каждом слове заглавными с помощью упомянутой функции. В конце выводим строку.
Код программы №1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> using namespace std; int main() { string s; getline(cin, s); s[0] = toupper(s[0]); for (int i = 2; i < s.length(); i++) { if (s[i-1] == ' ' and s[i] != ' ') { //если i-тый символ не является пробелом, а предыдущий - пробелом, то это первый символ в слове s[i] = toupper(s[i]); } } cout << s; return 0; } |
Код программы №2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> #include <cstring> using namespace std; int main() { char s[51]; cin.getline(s, 51); s[0] = toupper(s[0]); for (int i = 2; i < strlen(s); i++) { if (s[i] != ' ' and s[i-1] == ' ') { //если i-тый символ не является пробелом, а предыдущий - пробелом, то это первый символ в слове s[i] = toupper(s[i]); } } cout << s; return 0; } |
Для отправки комментария необходимо войти на сайт.