C: создание массива строк из исходной строки с разделителями
Что может быть эффективным способом преобразования строки с разделителями в массив строк в C (не C ++)? Например, я мог бы иметь:
char *input = "valgrind --leak-check=yes --track-origins=yes ./a.out"
Исходная строка всегда будет иметь только один пробел в качестве разделителя. И я хотел бы получить массив malloc-строкchar *myarray[]
такой что:
myarray[0]=="valgrind"
myarray[1]=="--leak-check=yes"
...
редактировать Я должен предположить, что в произвольном количестве токеновinputString
поэтому я не могу просто ограничить его до 10 или около того.
Я попытался грязное решение сstrtok
и связанный список, который я реализовал, но valgrind жаловался так сильно, что я сдался.
(Если вам интересно, это для основной оболочки Unix, которую я пытаюсь написать.)