Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 23.08.2019
Сообщений: 17
1

Слово из трех букв*

28.08.2019, 11:25. Показов 1864. Ответов 6

Всем привет. Помагите найти ошибку в моем коде.

Задано слово из трех букв. Слово состоит только из латинских букв, маленьких и больших. Вывести то же слово, где первая буква заглавная, остальные маленькие.

Input
DOG
cat
aRt
biG
Lip

Output
Dog
Cat
Art
Big
Lip

Вот мой код։


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
void to_lower(char ch) {
    if (ch >= 'A' && ch <= 'Z')
    {
        std::cout << char(ch - 'A' + 'a');
    }
    else
    {
        ch = ch - 'a';
        std::cout << ch;
    }
}   
void to_upper(char ch) {
    if (ch >= 'A' && ch <= 'Z')
    {
        std::cout << char(ch - 'A' + 'a');
    }
    else
    {
        ch = ch - 'a' + 'A';
        std::cout << ch;
    }
}
int main() {
    char ch;
    std::cin >> ch;
    to_upper(ch);
    to_lower(ch);
    to_lower(ch);
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2019, 11:25
Ответы с готовыми решениями:

Найдите из этого текста слово из трех букв и выведите на экран
здравствуйте дорогие форумчане. нужна помощь. Дан текст который заканчивается на точку. Найдите...

Ввести строку и слово. Вывести те слова, которые не содержат букв, входящих в слово.
Ребят помогите плииизз... только мне сказали через стандартную библиотеку Добавлено через 1...

Дано слово. Поменять местами первую из букв а и последнюю из букв о! кто может помчь!
Дано слово. Поменять местами первую из букв а и последнюю из букв о. Учесть возможность того, что...

Дано слово, состоящее только из строчных латинских букв. Проверьте, является ли это слово палиндромом.
Дано слово, состоящее только из строчных латинских букв. Проверьте, является ли это слово...

6
3318 / 1898 / 366
Регистрация: 09.09.2017
Сообщений: 7,731
28.08.2019, 11:58 2
Цитата Сообщение от Crips_Killers Посмотреть сообщение
to_lower
А чем стандартные toupper/tolower не устроили?
Цитата Сообщение от Crips_Killers Посмотреть сообщение
std::cin >> ch;
to_upper(ch);
to_lower(ch);
to_lower(ch);
Вы считываете одну букву, потом выводите ее в разных вариантах

Добавлено через 1 минуту
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <ctype.h>
 
int main(){
  char ch;
  
  ch = getchar();
  putchar(toupper(ch));
  ch = getchar();
  putchar(tolower(ch));
  ch = getchar();
  putchar(tolower(ch));
  putchar('\n');
}
0
0 / 0 / 0
Регистрация: 23.08.2019
Сообщений: 17
28.08.2019, 12:04  [ТС] 3
Пожалуйста используйте только #include <iostream #include <vector>
0
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
28.08.2019, 13:23 4
Так как строки небольшие, можно и рекурсию:
C++
1
2
3
void strToLower(char* str) {
    if(*str) *str = tolower(*str), strToLower(++str);
}
Только учтите, строка - это не просто char, это массив char'ов. Если вы все таки хотите использовать одну переменную, то запрашивайте ее новое значение сразу после вывода текущего. А то так получилось, что вы один раз считали один символ и вывели его трижды.
0
3318 / 1898 / 366
Регистрация: 09.09.2017
Сообщений: 7,731
28.08.2019, 13:25 5
Цитата Сообщение от Crips_Killers Посмотреть сообщение
Пожалуйста используйте только #include <iostream #include <vector>
Ну так перепишите под них, в чем проблема?
Цитата Сообщение от Cortas Посмотреть сообщение
Так как строки небольшие, можно и рекурсию
зачем рекурсию-то в линейном алгоритме?!
0
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
28.08.2019, 13:29 6
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
зачем рекурсию-то в линейном алгоритме?!
а почему бы нет, в любом случае в данной задаче ничего особо и не нужно, это так повеселить автора
0
6277 / 4261 / 2454
Регистрация: 18.12.2017
Сообщений: 13,286
28.08.2019, 16:16 7
Лучший ответ Сообщение было отмечено Crips_Killers как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
using namespace std;    
 
int main() 
{    
    char w[4];
    
    cin >> w;
    
    if (w[0]>='a' && w[0]<='z') w[0]-=32;
    if (w[1]>='A' && w[1]<='Z') w[1]+=32; 
    if (w[2]>='A' && w[2]<='Z') w[2]+=32;
    
    cout << w << "\n";
    
system("pause");
return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.08.2019, 16:16

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Ввести строку и слово. Вывести те слова, которые не содержат букв, входящих в слово (через <stdio.h>)
Помогите плз...лучше с пояснениями

Определить, в введенном предложении слово, которое состоит из тех же букв, что и заданное ключевое слово.
Ввести предложения и ключевое слово. Определить, в введенном предложении слово, которое состоит из...

Найти все комбинации из трех букв, входящих в заданное слово
дано слово ПЕРЕВАЛ. составьте все возможные комбинации из 3 букв, входящих в это слово.

Дана символьная строка. Определить, есть ли в строке слово из трех букв
Дана символьная строка. Определить, есть ли в строке слово из трех букв.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.