String в двухмерный массив

Тема в разделе "Arduino & Shields", создана пользователем Ардуинщик55055, 12 апр 2019 в 22:55.

Метки:
  1. у меня на входе:
    String a = "40,50/30,40/20,30"

    Хочу:
    a={
    {40,50},
    {30,40},
    {20,30},
    }

    Тоесть вфигачить строку в массив.
    При этом в двухмерный
     
  2. qwone

    qwone Гик

    Элементарно Ватсон. Вам для этого надо написать функцию конвертации String в массив.
     
  3. parovoZZ

    parovoZZ Гуру

    так строка это и есть массив. Просто его надо раздуплить.
     
    Airbus нравится это.
  4. b707

    b707 Гуру

    может в "Закажу проект" обратится?
    Задачка ничего интересного в плане самообразования не представляет, разве что в плане заработка :)
     
  5. Тоесть проверять наличие /, и после них считывать и кидать в массив? Попробую сам реализовать, не получится буду звать на помощь. Спугнуло то что там двухмерный массив

    Сделал, но много говнокода ;)
     
    Последнее редактирование модератором: 13 апр 2019 в 17:17
    Tomasina нравится это.
  6. Жуня

    Жуня Нуб

    Код (C++):
    int ** StringToArr (String s, int &x, int * &y) {
      //x - длина массива, y - длина каждого массива в массиве
      x = 1;
      y = new int[x];
      y[0] = 0;
      int ** res = new int*[x];
      res[0] = new int[y[0]];
      String data = "";
      s += '/';
      for (int i = 0; i < s.length(); i++) {
        if (s[i] == ',' || s[i] == '/') {
          y[x-1]++;
          res[x-1][y[x-1] - 1] = data.toInt();
          data = "";
        }
        if (s[i] == '/') {
          x++;
          y[x-1] = 0;
          res[x - 1] = new int[y[x-1]];
        }
        if (s[i] >= '0' && s[i] <= '9') {
          data += s[i];
        }
     
      }
      return res;
    }
     
    Последнее редактирование: 14 апр 2019 в 19:22
  7. b707

    b707 Гуру

    Жуня по-моему вы слишком много выпили перед написанием этого кода...
    Вот это, например, что?
    res[0] = new int[0];
    запрос массива нулевой длины?
     
    Последнее редактирование: 14 апр 2019 в 01:41
  8. А я сделал свои костыли. Обрезал строки по порядку. С помощью for цикла.

    Просто спрашивал потому что видел какие то другие методы с одномерными массивами с char