|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.04.2018, 18:45 | #1 |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
Как в один элемент массива char записать несколько букв?
Задача состоит в создании массива, который будет хранить название витаминов.
Если название витамина состоит из одной буквы, то проблемы нет: char vitamins[20]; for (int i = 0; i < 20; i++) cin >> vitamins[i]; А что делать, если витамин называется "PP" или "B1", как тогда создавать массив? Возможно ли задать размерность одному элементу массива? Через строки нельзя, т.к. в дальнейшем надо будет выводить продукты, которые содержат витамины введенные пользователем (работа с массивами char). |
02.04.2018, 19:36 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
И что?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
02.04.2018, 19:42 | #3 |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
|
02.04.2018, 19:52 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
А если без строк, то выдаст?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
02.04.2018, 20:07 | #5 |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
|
02.04.2018, 20:16 | #6 |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
Мне надо предварительно создать массивы, которые хранят витамины допустим трех продуктов. Например яблоко - А, Б, С, Д, картошка - С, Е, яйцо - С, Д. У меня вообще по условию витамины типа PP, B1, я из-за этого и спрашиваю как записать в один элемент несколько символов. Вот, а потом пользователь должен ввести любые витамины, и ему выдает продукты, содержащие эти витамины. Например, пользователь ввел витамины Д, С. Компилятор функциями сверяет массивы и выдает "яблоко" и "яйцо". Из-за этого я и не использую строки. У меня так-то задача получается, но как создать витамины типа B1, PP я не знаю.
|
02.04.2018, 20:19 | #7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Что вы с ним такое сделаете, что выдаст?
"два символа" это внезапно и есть строка. У std::string есть функция для поиска символа. Ну или более эффективные std::set/std::unordered_set, но для нескольких символов вряд ли есть смысл.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
02.04.2018, 20:31 | #8 |
Форумчанин
Регистрация: 24.01.2011
Сообщений: 774
|
ТС, это делается через индексы.
char vitamins[n][5] = {"A", "B1", и другие}; А запоминаешь индексы для этого массива в другом массиве. Если надо вывести, просто берёшь индексы и обращением к массиву получаешь нужные строчки.
a.k.a. Angelicos Phosphoros
Мой сайт |
02.04.2018, 20:34 | #9 |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
Да, хороший способ. Но я не могу заранее записать в код какие витамины будут в массиве, потому что они вводятся через cin.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
1. Задан двумерный целочисленный массив Х(6,6). Найти минимальный элемент каждой строки и максимальный элемент каждого столбца массива и записать их в одномерный массив А. | Greeb S | Фриланс | 5 | 15.12.2016 10:48 |
Записать элементы массива X, удовлетворяющие условию Х[12], подряд в массив Y =. Определить минимальный элемент массива X. | полин@ | Общие вопросы C/C++ | 0 | 03.10.2016 14:37 |
Как преобразовать элемент массива типа char в int? | neonakaneya | Общие вопросы C/C++ | 20 | 04.01.2012 20:28 |
Записать несколько одинаковых типов в один файл | Человек_Борща | Общие вопросы Delphi | 7 | 21.12.2010 22:39 |
Как сделать, чтобы один элемент списка в ComboBox писался в несколько строк? | Andr | Общие вопросы Delphi | 5 | 15.08.2007 22:24 |