Конкатенация имени массива

Тема в разделе "Arduino & Shields", создана пользователем Mulin, 25 апр 2018.

  1. Mulin

    Mulin Нуб

    Добрый день, профи. Пишу функцию для отабражения символов самодельным светодиодным дисплеем. Столкнулся с небольшой проблемой. В частности, у меня каждый символ представляет собой массив с идентичным преффиксом, но разным суффиксом. Например смивол "0" обозначен как
    Код (C++):
    char symbol_0[]{некоторый массив};
    Соответственно символ "1"

    Код (C++):
    char symbol_1[]{некоторый массив};
    Есть функция, в которую в качестве параметра передается отображаемый символ
    Код (C++):
    print_one_char("0");
    void print_one_char(char ch[])
    {
    //некий код
    }
    Функция должна подгружать соответствующий массив и каким-то образом его обрабатьывать. Скажем если мы ей передаем "0", то подгружаем массив symbol_0[], соответственно если передаем "1", то грузимsymbol_1[]. То есть задача стоит в том, что бы объединить префикс с суффиксом получив условно такой код:
    Код (C++):

    void print_one_char(char ch[])
    {
      char symbol = symbol_ + ch;
    }
    Вообщем код вида:

    Код (C++):
    char symbol = symbol_ + ch;
    очевидно работать не будет, а как написать что бы работал? Чую копать в сторону указателей, но я нуб(( Подскажите, люди добрые :)
     
  2. Daniil

    Daniil Гуру

    Нужно написать процедуру, которая свяжет символ "0" с переменной "symbol_0".
    Я бы делал через структуру switch-case.
    Код (C++):
    //Объявление символов
    char symbol_0...
    char symbol_1...

    //Процедура "соответствий"
    char get_mas_symbol(char ch)
    {
    switch ch
    case "0": return symbol_0; break;
    case "1": return symbol_1; break;
    ....
    }

    //Процедура вывода символа
    void print_one_char(char ch[])
    {
    symbol_mas = get_mas_symbol(ch);
    ....
    profit!1!
    }
     
    Если Вы водите только цифры, то я бы сделал через массив, где индекс массива соответствовал тому же самому символу. (нулевой элемент - "0", первый - "1").

    Если проект позволяет то так можно работать и с буквами, смотрите ASCII-таблицу. Работать не с символами, а с их кодами.
     
    Последнее редактирование: 26 апр 2018
    Mulin и arkadyf нравится это.
  3. Mulin

    Mulin Нуб

    Спасибо)