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

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

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

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

04.11.2012, 21:10. Просмотров 1493. Ответов 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 перевести все равно нужно будет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2012, 21:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строку в нижний регистр (C++):

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

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

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

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

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

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

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

Добавлено через 10 минут
сменил кодовую страницу для консоли результата нет
0
kazak
3038 / 2359 / 157
Регистрация: 11.03.2009
Сообщений: 5,405
Завершенные тесты: 1
04.11.2012, 21:42 #4
Цитата Сообщение от RESTY Посмотреть сообщение
сменил кодовую страницу для консоли результата нет
Каким образом?
0
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
04.11.2012, 21:50  [ТС] #5
Цитата Сообщение от kazak Посмотреть сообщение
Каким образом?
перед выводом вставил system("chcp 1251")
0
kazak
3038 / 2359 / 157
Регистрация: 11.03.2009
Сообщений: 5,405
Завершенные тесты: 1
04.11.2012, 22:21 #6
Цитата Сообщение от RESTY Посмотреть сообщение
перед выводом вставил system("chcp 1251")
Перед выводом? Это нужно делать в начале программы.
0
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
04.11.2012, 22:27  [ТС] #7
поставил в начало эффект тот же может пример кода приведете?
0
kazak
3038 / 2359 / 157
Регистрация: 11.03.2009
Сообщений: 5,405
Завершенные тесты: 1
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;
}
0
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
04.11.2012, 22:34  [ТС] #9
компилировать и запускать не про бывали?) много интересного увидите
0
kazak
3038 / 2359 / 157
Регистрация: 11.03.2009
Сообщений: 5,405
Завершенные тесты: 1
04.11.2012, 22:37 #10
Строку в нижний регистр
0
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
04.11.2012, 22:40  [ТС] #11
у меня не билдер а студия 2012 в ней вместо текущая кодовая страница пишет ерунду
0
kazak
3038 / 2359 / 157
Регистрация: 11.03.2009
Сообщений: 5,405
Завершенные тесты: 1
04.11.2012, 22:43 #12
Правый клик на заголовке окна консоли -> "Свойства" -> Вкладка "Шрифт" -> установить Lucida Console
1
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
04.11.2012, 22:51  [ТС] #13
ну не суть у меня вместо текущая кодовая страница пишет бред...
мне же что нужно у меня выше фрагмент моей программы необходимо что бы можно было просто вводить свою строку и чтобы выводило понятное русское слово

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

Добавлено через 1 минуту
еще такой вопрос эту надпись текущая кодовая страница можно как то убрать?
0
kazak
3038 / 2359 / 157
Регистрация: 11.03.2009
Сообщений: 5,405
Завершенные тесты: 1
04.11.2012, 22:52 #14
C++
1
std::system("chcp 1251 >> null");
1
alsav22
5425 / 4820 / 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() работает на русских буквах?
0
04.11.2012, 23:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2012, 23:33
Привет! Вот еще темы с ответами:

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

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

Строки в С++. Верхний и нижний регистр - C++
char alphabet; int i; char letter; for(letter='A',i=0;letter&lt;='Z'; letter++,i++) alphabet=letter; alphabet=NULL;...

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


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

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

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