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

Заполнение массива от 'А' до 'Я' и 'а' до 'я' - C++

06.09.2015, 14:10. Просмотров 835. Ответов 8
Метки нет (Все метки)

Как заполнить массив буквами русского алфавита по порядку, желательно не вручную . Нужно от 'А' до 'Я' и затем от 'а' до 'я' т.е 66 символов.
C++
1
char a[33]={"а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я"};
( Не вот так )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2015, 14:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Заполнение массива от 'А' до 'Я' и 'а' до 'я' (C++):

Ввод двумерного массива, ввод размерности массива, заполнение массива случайными числами
#include "stdafx.h" #include "locale.h" #include "stdlib.h" #include...

Заполнение массива значениями из символьного массива
есть массив символов char z;есть целочисленный массив int b;каждый символ z это...

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

Заполнение массива
Подскажите пожалуйста, как заполнить массив в такой закономерности: Например...

Заполнение массива
Я нахожу макс., мин. и среднее арифметическое элементов массива. Мне надо их...

Заполнение массива
Рандомно заполнить массив из 8 элементов таким образом чтобы все его элементы...

8
mymedia
193 / 193 / 120
Регистрация: 27.05.2011
Сообщений: 544
06.09.2015, 14:15 #2
Можно ещё так. Правда, в конце будет ещё нолик болтаться
C++
1
char a[] = "абвгдеёжзикйклмнопрстуфхцчшщъыьэюя";
1
SLEMRAONE
0 / 0 / 0
Регистрация: 06.09.2015
Сообщений: 2
06.09.2015, 14:20  [ТС] #3
Тоже вручную . Я имел ввиду можно ли это как-то реализовать циклом?
0
castaway
Эксперт С++
4926 / 3033 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
06.09.2015, 14:28 #4
C++
1
2
3
    char a[64];
    char l = 'А';
    std::generate( a, a + 64, [&]{ return l++; } );
1
nmcf
6238 / 5550 / 2526
Регистрация: 14.04.2014
Сообщений: 23,338
06.09.2015, 15:07 #5
Буква Ё стоит вне основного ряда, поэтому такой цикл нужно разделять на 4 части. Проще использовать строку с буквами.
0
MansMI
1447 / 1156 / 549
Регистрация: 08.01.2012
Сообщений: 4,509
06.09.2015, 15:09 #6
если именно циклом:
C++
1
2
3
4
5
6
7
    setlocale(LC_ALL,"Rus");
    char *a=new char['я'-'А'+1];
    for(char c='А'; c<='я'; c++)
    {
        a[c-'А']=c;
        cout<<a[c-'А'];
    }
0
nmcf
6238 / 5550 / 2526
Регистрация: 14.04.2014
Сообщений: 23,338
06.09.2015, 15:14 #7
MansMI, где в твоём примере Ё? Автор вроде бы весь алфавит хотел.
0
DrOffset
7518 / 4514 / 1097
Регистрация: 30.01.2014
Сообщений: 7,362
06.09.2015, 15:41 #8
А вот будет веселуха, если у нас кодировка исходника в какой-нибудь KOI8-R. Алфавитного порядка с такими циклом нам точно не видать. Не говоря уже про то, что некоторые буквы выпадут (не только ё, Ё, но еще и ю).
А если в UTF-8?
Отсюда вывод, хотите переносимости - не оставляйте в исходнике строки в локальных кодировках.
Таким образом программа становится зависимой от кодировки исходника, изменив которую, мы можем как кардинально изменить поведение программы, так и вообще сделать код некомпилируемым.
1
Splitty
5 / 5 / 4
Регистрация: 15.12.2013
Сообщений: 34
06.09.2015, 16:16 #9
Маленькие и большие буквы должны быть в одном массиве? Если так, то вот решение, уверен, что можно сделать намного элегантнее, но это самое быстрое и очевидное для меня решение:
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
#include <iostream>
 
int main()
{
    setlocale (LC_ALL, "russian");
 
    int counter = 192; // в таблице ASCII большая 'А' имеет номер 192
    char abc[66] =""; // массив для алфавита
 
    for(int i = 0; i < 66; i++)
        {
            if(counter == 197 || counter == 229) // вставка наших 'Ё' и 'ё'
                {
                    abc[i] = counter;
 
                    if(counter == 197)
                        abc[i+1] = 'Ё';
                    else 
                        abc[i+1] = 'ё';
                    i++;
                    counter++;
                }
            else
                {
                    abc[i] = counter;
                    counter++;
                }
        }
    // вывод на экран
    for(int i = 0; i < 66; i++)
        std::cout << abc[i];
 
    return 0;
}
0
06.09.2015, 16:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2015, 16:16
Привет! Вот еще темы с решениями:

Заполнение массива от -5 до 5.
Всем привет, народ помогите пожалуйста с задачей... Borland c 3.1 ...

Заполнение массива
Даны числа от 0 до 15 (включительно), нужно записать их в одномерный массив в...

Заполнение массива
Доброго времени суток всем:) Прошу немного помощи. Дали лабу на заполнение...

Заполнение массива
Доброго дня, уважаемые форумчане! В очередной раз сталкиваюсь с небольшой...


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

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

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