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

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

Войти
Регистрация
Восстановить пароль
 
SLEMRAONE
0 / 0 / 0
Регистрация: 06.09.2015
Сообщений: 2
#1

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

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

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

ввод двумерного массива,ввод размерности массива,заполнение массива случайными числами - C++
#include "stdafx.h" #include "locale.h" #include "stdlib.h" #include "math.h" void main() { setlocale(LC_ALL,"rus"); int...

Заполнение массива значениями из символьного массива - C++
есть массив символов char z;есть целочисленный массив int b;каждый символ z это цифра 0-9 нужно в b записать символ z(не код символа а...

Заполнение массива - C++
Заполнить массив 6x6 цифрами от 1 до 36 по следующей схеме 11 12 13 14 15 16 10 27 28 29 30 17 9 26 35 36 31 18 8 25 34 33 32...

Заполнение массива - C++
Добрый день. Объясните,пожалуйста, следующий момент. Есть кусок кода: void fill(struct member *p){ printf("\nFill your name...

Заполнение массива - C++
Помогите, пожалуйста, решить такую задачу: Нужно заполнить массив 6*6 цифрами от 1 до 36 по следующей схеме: 1 2 4 7 11 16 3 ...

Заполнение массива - C++
Здравствуйте, подскажите, как заполнить массив например из 10 000 элементов по условию задачи мне нужно работать с числами от "0001" до...

8
mymedia
193 / 193 / 48
Регистрация: 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
Эксперт С++
4919 / 3027 / 372
Регистрация: 10.11.2010
Сообщений: 11,085
Записей в блоге: 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
5754 / 5065 / 1732
Регистрация: 14.04.2014
Сообщений: 20,749
06.09.2015, 15:07 #5
Буква Ё стоит вне основного ряда, поэтому такой цикл нужно разделять на 4 части. Проще использовать строку с буквами.
0
MansMI
1305 / 1083 / 306
Регистрация: 08.01.2012
Сообщений: 4,147
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
5754 / 5065 / 1732
Регистрация: 14.04.2014
Сообщений: 20,749
06.09.2015, 15:14 #7
MansMI, где в твоём примере Ё? Автор вроде бы весь алфавит хотел.
0
DrOffset
7387 / 4464 / 1013
Регистрация: 30.01.2014
Сообщений: 7,319
06.09.2015, 15:41 #8
А вот будет веселуха, если у нас кодировка исходника в какой-нибудь KOI8-R. Алфавитного порядка с такими циклом нам точно не видать. Не говоря уже про то, что некоторые буквы выпадут (не только ё, Ё, но еще и ю).
А если в UTF-8?
Отсюда вывод, хотите переносимости - не оставляйте в исходнике строки в локальных кодировках.
Таким образом программа становится зависимой от кодировки исходника, изменив которую, мы можем как кардинально изменить поведение программы, так и вообще сделать код некомпилируемым.
1
Splitty
5 / 5 / 2
Регистрация: 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
Привет! Вот еще темы с ответами:

Заполнение массива - C++
Извините, что флудю, просто в старой теме уже не отвечают. data::data(int f){ if (f==1) ...

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

Заполнение массива - C++
У меня есть строка, которую пользователь ввел с консоли как мне каждый элемент строки добавить в массив??? Добавлено через 7 минут ...

Заполнение массива - C++
Я нахожу макс., мин. и среднее арифметическое элементов массива. Мне надо их значения записать во второй массив(новый). Как это сделать?...


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

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

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