Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
it1234567890
0 / 0 / 1
Регистрация: 19.05.2015
Сообщений: 54
#1

Преобразовать все строчные буквы(как латинские, так и русские) в прописные, а прописные в строчные - C++

26.05.2015, 20:38. Просмотров 1731. Ответов 7
Метки нет (Все метки)

Дана строка. Преобразовать в ней все строчные буквы(как латинские, так и русские) в прописные, а прописные в строчные. Помогите, прошу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2015, 20:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Преобразовать все строчные буквы(как латинские, так и русские) в прописные, а прописные в строчные (C++):

Преобразовать в строке все строчные буквы (как латинские, так и русские) в прописные, а прописные — в строчные
Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и...

Преобразовать в данной строке все строчные буквы (как латинские, так и русские) в прописные
55. Дана строка. Преобразовать в ней все строчные буквы (как латин- ские, так и...

Преобразовать в строке все прописные латинские буквы в строчные.
Дана строка. Преобразовать в ней все прописные латинские буквы в строчные.(с...

Русские строчные буквы преобразовать в прописные
Есть ли функция, что будет преобразовывать прописные русские буквы в строчные...

Поменять все строчные буквы на прописные, прописные на строчные
Дана строка с некоторым текстом. Составить программу, которая меняет в этом...

Процедура, преобразующая все прописные русские буквы строки в строчные.
Описать процедуру LowCaseRus(S), преобразующую все прописные русские буквы...

7
dima55501
30 / 34 / 11
Регистрация: 14.07.2013
Сообщений: 146
26.05.2015, 20:51 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string str = "This Is StRiNg";
    for (int i = 0; i < str.length(); i++)
    {
        if (isupper(str[i]))
        {
            str[i] = tolower(str[i]);
        }
        else if(islower(str[i]))
        {
            str[i] = toupper(str[i]);
        }
    }
    cout << str << endl;
    system("pause");
    return 0;
}
0
it1234567890
0 / 0 / 1
Регистрация: 19.05.2015
Сообщений: 54
26.05.2015, 20:56  [ТС] #3
dima55501, мне надо чтобы строка вводилась с клавиатуры, и можно писать и на англ и на русском, спасибо
0
aidarchiik
1 / 1 / 1
Регистрация: 27.01.2015
Сообщений: 45
26.05.2015, 21:06 #4
Лучший ответ Сообщение было отмечено it1234567890 как решение

Решение

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
#include <iostream>
#include <string>
#include <Windows.h>
 
using namespace std;
 
int main()
{
    setlocale(0,"");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string str;
    cout<<"Введите строку:\n";
    getline(cin,str);
    for (int i = 0; i < str.length(); i++)
    {
        if (isupper(str[i]))
        {
            str[i] = tolower(str[i]);
        }
        else if(islower(str[i]))
        {
            str[i] = toupper(str[i]);
        }
    }
    cout << str << endl;
    system("pause");
    return 0;
}
Ты можешь столкнуться с проблемой, что русские буквы он не обрабатывает. Так вот чтобы решить эту проблему надо ввести библиотеку #include <Windows.h>, затем написать SetConsoleCP(1251); SetConsoleOutputCP(1251);. После этого тебе надо открыть консоль, затем нажать правой кнопкой(в самом окне,там где кнопки свернуть,на весь экран,закрыть),выбрать свойства=>шрифт=>Lucida Console. И все заработает
1
zss
Модератор
Эксперт С++
6960 / 6522 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
26.05.2015, 21:46 #5
Лучший ответ Сообщение было отмечено it1234567890 как решение

Решение

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
31
32
33
#include <iostream>
#include <windows.h> 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Rus");
    char str[100]={0};
    cin.getline(str,100);
    OemToCharA(str,str);
    for (size_t i = 0; i<strlen(str); i++)
    {
        if (str[i]>='a' && str[i]<='z' )
        {
            str[i] -= 'a'-'A';
        }
        else if (str[i]>='A' && str[i]<='Z' )
        {
            str[i] += 'a'-'A';
        }
        else if (str[i]>='А' && str[i]<='Я' )
        {
            str[i] += 'а'-'А';
        }
        else if (str[i]>='а' && str[i]<='я' )
        {
            str[i] -= 'а'-'А';
        }
    }
    cout << str << endl; 
    system("pause");
    return 0;
}
Только отключите в проекте использование уникода
2
it1234567890
0 / 0 / 1
Регистрация: 19.05.2015
Сообщений: 54
26.05.2015, 21:48  [ТС] #6
zss, моей благодарности нет предела
0
zss
Модератор
Эксперт С++
6960 / 6522 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
26.05.2015, 23:00 #7
Кстати, еще отдельно надо рассмотреть букву ё
C++
1
2
3
4
else if (str[i]=='ё' )
            str[i]='Ё';
        else if (str[i]=='Ё' )
            str[i]='ё';
0
ValeryS
Модератор
7134 / 5401 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
28.05.2015, 11:55 #8
для латинских просто
C++
1
ch^=0x20;
но это только для ASCII кодировки
0
28.05.2015, 11:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2015, 11:55
Привет! Вот еще темы с решениями:

Строка: Преобразовать в заданной пользователем строке все строчные буквы в прописные...
Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и...

Как преобразовать строчные буквы в прописные и наоборот.
Код строчных букв ASCII отличается от кода прописных на 32. Таким образом,...

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

Преобразовать в строке строчные (малые) буквы русского алфавита в прописные (заглавные)
Написать программу, которая в введенной с клавиатуры строке преобразует...


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

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

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