Разделение строки по разделителям
- Войдите на сайт для отправки комментариев
Втр, 21/06/2022 - 17:03
Есть строка на подобии этого: 20|15|20@10|20|30@10|10|10
Я хочу разделить сначала строки по разделителю @, а затем по |, но по @ у меня получается, а по | нет
Ругается на строку (error: initializer fails to determine size of 'sz2' и error: array must be initialized with a brace-enclosed initializer). Перепробовал по разному исправить проблему
char sz2[] = str;
char *str; char sz[] = "10|20|30@13|25|25@17|19|19"; char *p = sz; while ((str = strtok_r(p, "@", &p)) != NULL) { Serial.println(str); char *str2; char sz2[] = str; char *p2 = sz2; while ((str2 = strtok_r(p2, "|", &p2)) != NULL) { Serial.println(str2); } Serial.println("===="); }
Попробовал так:
Но выводит так:
Всё, получилось решить
Может кому-то пригодится:
Надеюсь, Вы знаете, что strtok гадит в строку?
заметил что когда строку из массива прогоняю с strtok второй раз, то в массиве из "10|20|30" остается только "10". Вы про это?
Да
Понял, спасибо