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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
#1

Массив с русс буквами. - C++

02.02.2011, 19:12. Просмотров 1769. Ответов 21
Метки нет (Все метки)

Пишу программу в линуксе.

C++
1
2
3
4
5
int main()
{
     char slova[10] = { 'в',' д',' й',' х',' ч',' я',' т',' к',' д',' ж' };
     return 0;
}
Компилю.
g++ main.cpp -o start
При компиляя выдает ошибки:
warning: overflow in implicit constant conversion
...
и тд..


как можно избавиться от ошибок что бы можно было писать в массиве по русски? ( когда слова пишу по англ то все ок).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2011, 19:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив с русс буквами. (C++):

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

Массив словаря почему-то не работает с русскими буквами - C++
Дан двумерный массив словаря, почему не работает с русскими буквами, а работает только с английскими, помогите разобраться: #include...

Как заполнить массив буквами английского алфавита ? - C++
26 букв Добавлено через 48 секунд с помощью цикла for и по порядку ! Заранее спасибо!

Отсортировать массив с буквами в обратном порядке чем в алфавите - C++
Отсортировать массив с буквами в обратном порядке чем в алфавите

{SetConsoleCP(1251); SetConsoleOutputCP(1251); сломал русс шрифт - C++
получилось так что скомпилил и запустил программу со строкой {SetConsoleCP(1251); SetConsoleOutputCP(1251); теперь...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
02.02.2011, 19:16 #2
std::locale loc("russian_Russia.866");
locale::global(loc);
Но это как вариант. Если я правильно понял, что не хочет кушать русские буквы...
0
Wanee
54 / 54 / 13
Регистрация: 02.02.2011
Сообщений: 430
02.02.2011, 19:19 #3
Это связанно с кодировкой. Не знаю как в линуксе в windows приходилось приходилось делать так...
C++
1
2
3
4
5
6
#include <windows.h>
 
void main()
{
    setlocale(LC_ALL, "Russian");
}
После можно было спокойно писать на русском.
0
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
02.02.2011, 19:38  [ТС] #4
zulkis, не хочет работать.
Wanee, ну таких же в линуксе библиотек нету.
0
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
02.02.2011, 19:44 #5
А так:
C++
1
setlocale(LC_ALL, "koi-8r");
И в догонку:
man setlocale
Могу наврать в синтаксисе, ибо я не сталкивался с русским языком там.
0
CyBOSSeR
Эксперт C++
2302 / 1672 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
02.02.2011, 19:55 #6
zulkis, Wanee, у человека при компиляции проблемы, указанные же Вами функции никоем образом на компилятор не влияют.
0
Wanee
54 / 54 / 13
Регистрация: 02.02.2011
Сообщений: 430
02.02.2011, 19:59 #7
Цитата Сообщение от koka3000 Посмотреть сообщение
zulkis, не хочет работать.
Wanee, ну таких же в линуксе библиотек нету.
да таких нет. Попробуй найти что нибудь похожее. А лучше перекодировать сообщение перед выводом
ведь проблемма именно в кодировке. в консольном приложений кодировка asc||. и из за этого вся проблемма.

Добавлено через 3 минуты
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
zulkis, Wanee, у человека при компиляции проблемы, указанные же Вами функции никоем образом на компилятор не влияют.
эти функции работают на Windows я сразу сказал.
0
CyBOSSeR
Эксперт C++
2302 / 1672 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
02.02.2011, 20:01 #8
Цитата Сообщение от Wanee Посмотреть сообщение
ведь проблемма именно в кодировке.
Кодировка тут не причем: http://codepad.org/1UcGbDaK

Цитата Сообщение от Wanee Посмотреть сообщение
эти функции работают на Windows я сразу сказал
При чем тут эти функции? У человека не компилируется. См. ссылку выше.
0
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
02.02.2011, 20:05 #9
Мб посоветуешь чтолибо ?
0
Wanee
54 / 54 / 13
Регистрация: 02.02.2011
Сообщений: 430
02.02.2011, 20:05 #10
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Кодировка тут не причем: http://codepad.org/1UcGbDaK


При чем тут эти функции? У человека не компилируется. См. ссылку выше.
у меня всё нормально компилируется
0
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
02.02.2011, 20:10  [ТС] #11
Wanee, у меня под виндой тоже нормально компилилось. А вот под линуксом..
0
Wanee
54 / 54 / 13
Регистрация: 02.02.2011
Сообщений: 430
02.02.2011, 20:12 #12
Цитата Сообщение от koka3000 Посмотреть сообщение
Wanee, у меня под виндой тоже нормально компилилось. А вот под линуксом..
видемо что то прописывать нужно...
0
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
02.02.2011, 20:12  [ТС] #13
Значит так. Оказывается все норм скомпилилось! Я когда увидел ошибки то сразу подумал что не норм скомпилилось. Но прога запустилась и там каразули. Ща попробую посты више.
0
Wanee
54 / 54 / 13
Регистрация: 02.02.2011
Сообщений: 430
02.02.2011, 20:18 #14
ну как результат есть?
0
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
02.02.2011, 20:28  [ТС] #15
C++
1
2
3
#include<locale>
...
setlocale(LC_ALL, "koi-8r"); // or UTF-8
Всеравно пишет каракули.



Вот полный код программи. Может попробуйте у себя скомпилить.
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
34
35
36
#include<iostream>
using std::cout;
using std::endl;
using std::cin;
 
#include<cstdlib>
using std::rand;
using std::srand;
 
#include<locale>
using std::setlocale;
 
int main()
{
    setlocale(LC_ALL, "koi-8r"); // or UTF-8
    int Csize = 10;
    int Ssize = 10;
 
    const char Sdb[10][10] = {
    {'H','e','l','l','o','\0' },
    {'u','s','e','r','\0'},
    {'h','o','w','\0'},
    {'y','o','u','\0'},
    {'d','o','\0',},
    {'y','o','u','\0'},
    {'d','в','\0'} };
 
    for ( int cont1 = 0; cont1 < Ssize; cont1++ )
    {
        for ( int cont2 = 0; Sdb[cont1][cont2] != '\0'; cont2++ )
            cout << Sdb[cont1][cont2];
    cout << " ";
    }
    cout << endl;
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2011, 20:28
Привет! Вот еще темы с ответами:

Сформировать из значений массива другой массив, расположив в нем сначала цифры, затем – буквы, затем - символы, не являющихся ни буквами, ни цифрами - C++
Создать массив из 20 символьных значений. Сформировать из его значений другой массив, расположив в нем сначала цифры, затем – буквы, затем...

Вывод русскими буквами - C++
Вообщем в задачке нужно рассчитать всевозможные тройки ФИО. #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cstring&gt; #include...

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

Дописать string буквами char[i] - C++
1) Есть функция разбирающая строку. Необходимо при определённом условии, в цикле, дописать в новую строку (string prep) текущим символом...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.02.2011, 20:28
Ответ Создать тему
Опции темы

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