Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
#1

Строку в нижний регистр - C++

04.11.2012, 21:10. Просмотров 1395. Ответов 15
Метки нет (Все метки)

вводится русская строка (слово ) кодировка 1251, необходимо привести ее к нижнему регистру
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <ctype.h>
#include <locale.h>
#include <string>
#include <iostream>
#include <algorithm>
 
 
int main (){
    setlocale (LC_ALL, "");
 
    std::string str = "ПРИВЕТ";
    //std::cin >> str;
    //std::cout << str << std::endl;
    transform (str.begin (), str.end (), str.begin (), ::tolower);
    std::cout << str << std::endl;
    
 
    system("pause");
    return 0;
}

работает если строке изначально присвоить какое то значение при вводе своей строки выдает иероглифы...
помогите пжл
можно сделать через char только потом в string перевести все равно нужно будет
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2012, 21:10     Строку в нижний регистр
Посмотрите здесь:

Нижний регистр - C++
Помогите пожалуйста с заданием. Как правильно написать. А то мучалась, так ни чего не смогла сделать. Задание: Написать программу,...

Преобразование в нижний регистр - C++
Здравствуйте! Почему это не работает (результат неизменен): #include &lt;Windows.h&gt; #include &lt;stdio.h&gt; void...

Перевод в нижний регистр - C++
Приветствую . Прошу помощи , выдаёт ошибку при переводе в нижний регистр , в чём проблема ? #include &lt;vector&gt; #include &lt;fstream&gt; ...

Перевод в нижний регистр - C++
Есть строка стринг в которой записана кириллица, нужно перевести ее в нижний регистр.

Верхний и нижний регистр буквы - C++
#include &lt;cctype&gt; #include &lt;iostream&gt; int main() { using namespace std; char ch; while(cin.get(ch) &amp;&amp; ch !=...

Перевод символа в нижний регистр - C++
Привет всем)) у меня такой вопрос: почему функция tolower() возвращает не символ в нижнем регистре, а какие-то цифры (наверное код буквы)....

Перевод букв в нижний регистр - C++
Как перевести все буквы строки введенной с клавиатуры в нижний регистр?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
04.11.2012, 21:22     Строку в нижний регистр #2
Цитата Сообщение от RESTY Посмотреть сообщение
работает если строке изначально присвоить какое то значение при вводе своей строки выдает иероглифы...
Ввод с клавиатуры сохраняется в кодировке ОЕМ 866. setlocale не предназначена для смены кодовых страниц. Используйте OemToChar\CharToOem либо меняйте кодовую страницу для консоли ( допустим system("chcp 1251"); ).
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
04.11.2012, 21:40  [ТС]     Строку в нижний регистр #3
спасибо щас попробую

Добавлено через 10 минут
сменил кодовую страницу для консоли результата нет
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
04.11.2012, 21:42     Строку в нижний регистр #4
Цитата Сообщение от RESTY Посмотреть сообщение
сменил кодовую страницу для консоли результата нет
Каким образом?
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
04.11.2012, 21:50  [ТС]     Строку в нижний регистр #5
Цитата Сообщение от kazak Посмотреть сообщение
Каким образом?
перед выводом вставил system("chcp 1251")
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
04.11.2012, 22:21     Строку в нижний регистр #6
Цитата Сообщение от RESTY Посмотреть сообщение
перед выводом вставил system("chcp 1251")
Перед выводом? Это нужно делать в начале программы.
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
04.11.2012, 22:27  [ТС]     Строку в нижний регистр #7
поставил в начало эффект тот же может пример кода приведете?
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
04.11.2012, 22:31     Строку в нижний регистр #8
C++
1
2
3
4
5
6
7
8
9
10
11
int main (){
    std::system("chcp 1251");
 
    std::string str;
 
    std::cin >> str;
    std::cout << str << std::endl;
 
    std::system("pause");
    return 0;
}
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
04.11.2012, 22:34  [ТС]     Строку в нижний регистр #9
компилировать и запускать не про бывали?) много интересного увидите
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
04.11.2012, 22:37     Строку в нижний регистр #10
Строку в нижний регистр
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
04.11.2012, 22:40  [ТС]     Строку в нижний регистр #11
у меня не билдер а студия 2012 в ней вместо текущая кодовая страница пишет ерунду
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
04.11.2012, 22:43     Строку в нижний регистр #12
Правый клик на заголовке окна консоли -> "Свойства" -> Вкладка "Шрифт" -> установить Lucida Console
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
04.11.2012, 22:51  [ТС]     Строку в нижний регистр #13
ну не суть у меня вместо текущая кодовая страница пишет бред...
мне же что нужно у меня выше фрагмент моей программы необходимо что бы можно было просто вводить свою строку и чтобы выводило понятное русское слово

Добавлено через 3 минуты
Цитата Сообщение от kazak Посмотреть сообщение
Правый клик на заголовке окна консоли -> "Свойства" -> Вкладка "Шрифт" -> установить Lucida Console
прости не заметил все получилось как нужно) извиняй за вынос мозга если что

Добавлено через 1 минуту
еще такой вопрос эту надпись текущая кодовая страница можно как то убрать?
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
04.11.2012, 22:52     Строку в нижний регистр #14
C++
1
std::system("chcp 1251 >> null");
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.11.2012, 23:33     Строку в нижний регистр #15
C++
1
2
3
4
5
6
7
8
#include <windows.h>
...
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
...
}
В ствойствах консоли выбрать шрифт: Lucida Console.

Добавлено через 4 минуты
Цитата Сообщение от RESTY Посмотреть сообщение
работает если строке изначально присвоить какое то значение
И tolower() работает на русских буквах?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2012, 05:00     Строку в нижний регистр
Еще ссылки по теме:

Русские символы в нижний регистр в С++ (debian) - C++
Здравствуйте! Начал изучать С++ (пора бы уже //.о) и где-то за пол месяца начинает что-то более - менее получаться. Поднимаю проблему...

Преобразовать текст файла в нижний регистр - C++
Записать в данный файл все слова в том же порядке но большие латинськилитеры заменить на малые . помогите решить очень нужно...

Переход в нижний регистр с верхнего в русском языке - C++
Здравствуйте, при переходе строки из верхних регистров в нижний, прога этого не делает, с английским все нормально в чем проблема сам...

Не работает замена символов в файле на нижний регистр - C++
Почему не работает код? По идее должен символы в файле заменить на нижний регистр. int main() { string way = &quot;Example.txt&quot;; ...

Преобразование строки сначала в верхний регистр, потом в нижний - C++
Напишите программу, которая преобразовывает все символы введенной строки сначала в верхний регистр затем в нижний регистр а затем заменяет...


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

Или воспользуйтесь поиском по форуму:
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
05.11.2012, 05:00  [ТС]     Строку в нижний регистр #16
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
#include <windows.h>
...
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
...
}
В ствойствах консоли выбрать шрифт: Lucida Console.

Добавлено через 4 минуты

И tolower() работает на русских буквах?
да все норм только проблема есть с буквой ё
Yandex
Объявления
05.11.2012, 05:00     Строку в нижний регистр
Ответ Создать тему
Опции темы

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