Конкатенация имени массива
- Войдите на сайт для отправки комментариев
Ср, 25/04/2018 - 19:11
Добрый день, профи. Пишу функцию для отабражения символов самодельным светодиодным дисплеем. Столкнулся с небольшой проблемой. В частности, у меня каждый символ представляет собой массив с идентичным преффиксом, но разным суффиксом. Например смивол "0" обозначен как
char symbol_0[]{некоторый массив};
Соответственно символ "1"
char symbol_1[]{некоторый массив};
Есть функция, в которую в качестве параметра передается отображаемый символ
print_one_char("0"); void print_one_char(char ch[]) { //некий код }
Функция должна подгружать соответствующий массив и каким-то образом его обрабатьывать. Скажем если мы ей передаем "0", то подгружаем массив symbol_0[], соответственно если передаем "1", то грузим symbol_1[]. То есть задача стоит в том, что бы объединить префикс с суффиксом получив условно такой код:
void print_one_char(char ch[]) { char symbol = symbol_ + ch; }
Ссори, нечайно отправил недописав.
Вообщем код вида
очевидно работать не будет, а как написать что бы работал? Чую копать в сторону указателей, но я нуб(( Подскажите, люди добрые :)
Почему бы не завести тупо двумерный массив с одним именем?
Почему бы не завести тупо двумерный массив с одним именем?
Массивы будут динамически добавляться, мне удобнее на каждый символ иметь отдельный массив
а как написать что бы работал?
Писать на JavaScript. Купите искру и пишите на здоровье.
Если же хотите остаться на C++, то слушайте, что говорит Arhat109-2, нормальное, простое решение и динамичности отнюдь не противоречит (кстати, нахрена Вам нужна динамичность в наборе символов, знаете только Вы, но подозреваю, что на самом деле не нужна).
Разумеется. Вам обязательно изучить первоисточники https://nsu.ru/xmlui/bitstream/handle/nsu/9058/kr.pdf и https://vk.com/doc16756779_228187070?hash=88e5b6ccd4f822602c&dl=ccc12f550fe4ac896f
Вы банально не владеете материалом.
а как написать что бы работал?
Писать на JavaScript. Купите искру и пишите на здоровье.
Если же хотите остаться на C++, то слушайте, что говорит Arhat109-2, нормальное, простое решение и динамичности отнюдь не противоречит (кстати, нахрена Вам нужна динамичность в наборе символов, знаете только Вы, но подозреваю, что на самом деле не нужна).
У меня массивы символов генеирует спец. софт из под винды (там далеко не только числа и буквы). Тут я ничего не могу поделать. Есть вариант только с отдельными массивами. Вариант покупать что-то иное не прокатит. Устройство уже разработано и спаяно. Мне просто надо объеденить имя переменной. Ни менять устройство, ни менять язык, ни менять систему, комп, страну, планету, пол. Если есть решение в рамках указанного, я буду благодарен за подсказку.
Разумеется. Вам обязательно изучить первоисточники https://nsu.ru/xmlui/bitstream/handle/nsu/9058/kr.pdf и https://vk.com/doc16756779_228187070?hash=88e5b6ccd4f822602c&dl=ccc12f550fe4ac896f
Вы банально не владеете материалом.
Вы можете просто привести пример строки?
Простите, я что то пропустил или вы не написали откуда ваша программа подгружает символы? В какой момент и где программа должна прочитать symbol_?
Простите, я что то пропустил или вы не написали откуда ваша программа подгружает символы? В какой момент и где программа должна прочитать symbol_?
Мне надо объеденить две переменные
Таким образом, что бы при вызове
Я бы получил в терминале не просто строку "name_01", а непосредственно значение этой переменной - "а".
Вот прямо так, как Вы описали, Вы этого не сделаете от слова никак. Ищите другое решение, без необходимости формировать имена переменных во время работы программы. Например, ассоциативные массивы или ещё что. Но если Вообще ничего поменять не можете, то никак не сделаете.
У меня массивы символов генеирует спец. софт из под винды ... Устройство уже разработано и спаяно.
Кто ж Вас просил паять и собирать, если Вы не знали что будете потом с этим делать?
И сразу возникает вопрос зачем? На стадии компилирования не существует name_01 ни _01 ни _02. Программа ничего не знает про эти сущности. Все они заменены на ячейки памяти и соответствие можно увидеть в листитнге но не в программе.
Поэтому и вопрос - как вы передаёте в программу исходные данные. Если до компиляции один путь, если после - совсем другой. Но в любом случае все имена вы должены прописать в программе в явном виде. Например стрингами.
Кто ж Вас просил паять и собирать, если Вы не знали что будете потом с этим делать?
Этот вопрос к сути отношения не имеет. А где можно подробнее узнать про ассоциативные массивы? Спасибо
И сразу возникает вопрос зачем? На стадии компилирования не существует name_01 ни _01 ни _02. Программа ничего не знает про эти сущности. Все они заменены на ячейки памяти и соответствие можно увидеть в листитнге но не в программе.
Поэтому и вопрос - как вы передаёте в программу исходные данные. Если до компиляции один путь, если после - совсем другой. Но в любом случае все имена вы должены прописать в программе в явном виде. Например стрингами.
Если до, то какие проблемы создать массив соответствия желаемого и сгенерённого? Это обычная практика. Кодировка называется. Вам только таблицу кодировки создать и все ваши проблемы будут решены.
Профи, может тогда посоветуете как красивее оформить следующий вариант:
То есть я по условию пришедшего параметра работаю с соответствующим массивом. Но это некрасивый код, может есть вариант лучше? Спасибо
Посмотрите любую библиотеку графического дисплея. В точности ваша задача. Есть массив с точечным представлением символов и вывод этих символов на экран. Всё написано.
эта тема напоминает мне мультфильм "Ослик огородник" https://www.youtube.com/watch?v=57f1f852h5g
Тему можно закрывать, все решил своими силами
Разумеется. Вам обязательно изучить первоисточники https://nsu.ru/xmlui/bitstream/handle/nsu/9058/kr.pdf и https://vk.com/doc16756779_228187070?hash=88e5b6ccd4f822602c&dl=ccc12f550fe4ac896f
Вы банально не владеете материалом.
Вот на кой хрен Вы все претесь в Ар-дуркино, микроконтроллеры и вообще программирование, если Вы НЕ ВЛАДЕЕТЕ элементарным материалом, который детишки вполне осваивают в возрасте 10-11 лет?!?
Выбросьте свою ардуино и не парьте мозги ни себе ни людям. Тем более, что ваших тут не замечено..
P.S. Дочитал топик до конца .. это просто 3.14здец какой-то..
Тему можно закрывать, все решил своими силами
А рассказать как решил?
Почему все новички считают: Вот Вы мне помогите, а когда у меня будет решение - я Вам хрен его покажу, можете закрывать тему.
Вам не кажется, что это как-то некрасиво?
Жень, Вы вправду считаете, что лучше пусть новички со словами "вдруг кому еще пригодится" выкладывают код, который... В общем, который лучше не видеть.
Ну, код-то меня вряд ли заинтересует, но то, что обмен информацией должен быть взаимным, да считаю.
Например, в этой теме мне реально интересно, что ТС для себя решил. Разумеется, я не жду, что он вдруг откроет для меня метод формирования имен переменных во время выполнения, т.к. я понимаю. что это невозможно, а вот какое решение он таки для себя выбрал, мне действительно интересно. Я потратил некоторое время на помощь ему, и считаю себя вправе претендовать на удовлетворение своего любопытства.
Жень, Вы вправду считаете, что лучше пусть новички со словами "вдруг кому еще пригодится" выкладывают код, который... В общем, который лучше не видеть.
То есть я по условию пришедшего параметра работаю с соответствующим массивом. Но это некрасивый код, может есть вариант лучше? Спасибо
конечно есть. Надо переписать "спецсофт для виндовз", который генерит массивы. чтобы он превращал их в двумерые. Или, если софт поменять нельзя - написать для этого отдельный скрипт, который менял бы заголовок массива. Десяток строк на любом скриптовом языке, типа Яваскрипт или Перла - будет достаточно.
Разумеется. Вам обязательно изучить первоисточники https://nsu.ru/xmlui/bitstream/handle/nsu/9058/kr.pdf и https://vk.com/doc16756779_228187070?hash=88e5b6ccd4f822602c&dl=ccc12f550fe4ac896f
Вы банально не владеете материалом.
Вот на кой хрен Вы все претесь в Ар-дуркино, микроконтроллеры и вообще программирование, если Вы НЕ ВЛАДЕЕТЕ элементарным материалом, который детишки вполне осваивают в возрасте 10-11 лет?!?
Выбросьте свою ардуино и не парьте мозги ни себе ни людям. Тем более, что ваших тут не замечено..
P.S. Дочитал топик до конца .. это просто 3.14здец какой-то..
Тему можно закрывать, все решил своими силами
А рассказать как решил?
Почему все новички считают: Вот Вы мне помогите, а когда у меня будет решение - я Вам хрен его покажу, можете закрывать тему.
Вам не кажется, что это как-то некрасиво?
Жень, Вы вправду считаете, что лучше пусть новички со словами "вдруг кому еще пригодится" выкладывают код, который... В общем, который лучше не видеть.
Лично для вас повторю - " код использовал не самый изящный"
ну так постановка задачи изначально было дурацкая - сначала нагородили искусственных сложностей, а потом их решали, да еще и обязательно "через Ж.".
Изящного решения тут нет и быть не может.
Лично для вас повторю - " код использовал не самый изящный"
ну так постановка задачи изначально было дурацкая - сначала нагородили искусственных сложностей, а потом их решали, да еще и обязательно "через Ж.".
Изящного решения тут нет и быть не может.
Понятно, значит, когда Вы поставили неразрешимую задачу "формировать имя переменной в программе", а я Вам объяснил, что она неразрешима
это называлось - "не помог".
Сожалею, что потратил на Вас время :(
Добрый день, профи. Пишу функцию для отабражения символов самодельным светодиодным дисплеем. Столкнулся с небольшой проблемой. В частности, у меня каждый символ представляет собой массив с идентичным преффиксом, но разным суффиксом. Например смивол "0" обозначен как
Соответственно символ "1"
Есть функция, в которую в качестве параметра передается отображаемый символ
Функция должна подгружать соответствующий массив и каким-то образом его обрабатьывать. Скажем если мы ей передаем "0", то подгружаем массив symbol_0[], соответственно если передаем "1", то грузим symbol_1[]. То есть задача стоит в том, что бы объединить префикс с суффиксом получив условно такой код:
Пилять, какой долбоеб "никто ему тут не помог" .. вам сразу ответил же "используйте двумерный массив". Не, не доходит до идиоту .. примерно так будет выглядеть ваша хотелка:
С остальным разберитесь самостоятельно, открыв учебник. Задача для возраста 11лет.
Понятно, значит, когда Вы поставили неразрешимую задачу "формировать имя переменной в программе", а я Вам объяснил, что она неразрешима
это называлось - "не помог".
Сожалею, что потратил на Вас время :(
Добрый день, профи. Пишу функцию для отабражения символов самодельным светодиодным дисплеем. Столкнулся с небольшой проблемой. В частности, у меня каждый символ представляет собой массив с идентичным преффиксом, но разным суффиксом. Например смивол "0" обозначен как
Соответственно символ "1"
Есть функция, в которую в качестве параметра передается отображаемый символ
Функция должна подгружать соответствующий массив и каким-то образом его обрабатьывать. Скажем если мы ей передаем "0", то подгружаем массив symbol_0[], соответственно если передаем "1", то грузим symbol_1[]. То есть задача стоит в том, что бы объединить префикс с суффиксом получив условно такой код:
Пилять, какой долбоеб "никто ему тут не помог" .. вам сразу ответил же "используйте двумерный массив". Не, не доходит до идиоту .. примерно так будет выглядеть ваша хотелка:
С остальным разберитесь самостоятельно, открыв учебник. Задача для возраста 11лет.
Добрый день, профи. Пишу функцию для отабражения символов самодельным светодиодным дисплеем. Столкнулся с небольшой проблемой. В частности, у меня каждый символ представляет собой массив с идентичным преффиксом, но разным суффиксом. Например смивол "0" обозначен как
Соответственно символ "1"
Есть функция, в которую в качестве параметра передается отображаемый символ
Функция должна подгружать соответствующий массив и каким-то образом его обрабатьывать. Скажем если мы ей передаем "0", то подгружаем массив symbol_0[], соответственно если передаем "1", то грузим symbol_1[]. То есть задача стоит в том, что бы объединить префикс с суффиксом получив условно такой код:
Пилять, какой долбоеб "никто ему тут не помог" .. вам сразу ответил же "используйте двумерный массив". Не, не доходит до идиоту .. примерно так будет выглядеть ваша хотелка:
С остальным разберитесь самостоятельно, открыв учебник. Задача для возраста 11лет.
Тебе именно это и было сказано в самом начале. Разобрался? Вот и тут будет также. Выбрось и не насилуй ни ардуинку ни свой мозг без извилин. Не твое это.
А со своими манерами я разберусь как-нибудь сам, без подсказок долбоедов, которые первый совет асилить не в состоянии.
Потом из таких вот неучей-дибилов и вырастают, все те идиоты, что то "фобос в грунт" положат, "то в чиновники" подадутся и такую хрень городят, что народ смотрит и тихо диву дается..
А сказать, что решения нет, это не помощь.
Да уж...
Правду говорят, что бесконечной может быть только Вселенная и человеческая глупость.
Тебе именно это и было сказано в самом начале. Разобрался? Вот и тут будет также. Выбрось и не насилуй ни ардуинку ни свой мозг без извилин. Не твое это.
А со своими манерами я разберусь как-нибудь сам, без подсказок долбоедов, которые первый совет асилить не в состоянии.
Потом из таких вот неучей-дибилов и вырастают, все те идиоты, что то "фобос в грунт" положат, "то в чиновники" подадутся и такую хрень городят, что народ смотрит и тихо диву дается..
Обыкновенное быдло - тут только одно и это ты. Тебе первым же постом был дан ответ. Внятный и верный. Мозгов его осилить явно недостаточно.