аллокаций и нуль терминейта? кажется, тут можно как-то арифметеку указателей заюзать, но я не догоняю.
например, есть строка:
char *s = "fir-st-second:third";
необходимо взять три слова в итоге: "third, second, fir-st" без разделителей, справа налево, т.к. у первого слова могут быть разделители в самом слове.
я начал юзать strrchr и нуль терминейт, но в итоге у меня какая-то jopa выходит и часто сигфолты прилетают.
код вида:
char *tmp = strdup(s);
t = strrchr(tmp, ‘:‘);
*t++ = '\0';
char *third = t;
tmp = ++t;
t = strrchr(tmp, ‘-‘);
*t++ = '\0';
char *second = t;
tmp = ++t;
…
это упрощенная версия кода, т.к. в реале есть другие обвязки и т.п., но сама идея - такая
в сишке строка null-terminated https://en.cppreference.com/w/c/string/byte/strchr вот пример как юзать strchr позыркай
можешь еще на https://godbolt.org/z/8nx8xzPqd залить
а шо кого зачем залить?
Обсуждают сегодня