Я новичок в C, и у меня есть код, но я не понимаю его часть.Объяснение кода C для токенизатора строка
typedef struct
{
size_t count;
char** strings;
} Tokens;
Tokens Tokenize(char* String, char Split)
{
Tokens t;
t.count = 1;
for (size_t i = 0; String[i] != 0; i++)
{
if (String[i] == Split)
t.count++;
}
t.strings =(char**) malloc(sizeof(char*)* t.count);
if (t.count > 0)
t.strings[0] = String;
for (size_t i = 0, j = 1; String[i] != 0; i++)
{
if (String[i] == Split)
{
t.strings[j] = &String[i + 1];
String[i] = 0;
j++;
i++;
}
}
return t;
}
Та часть, я не понимаю, как указатель на указатель символ может разметить строковое часть, особенно та линия t.strings [J] = & String [я + 1];
Если кто-то может сделать визуализацию процесса, я был бы благодарен. Благодаря
Используйте отладчик и выполните свой код. Там у вас есть ваша «визуализация». «Вопросы, требующие помощи по отладке (« почему этот код не работает? ») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения его в самом вопросе. Вопросы без четкого заявления о проблемах не являются полезными другим читателям. См.: Как создать [mcve]. " Если это работает, это OT в любом случае, мы не сайт для объяснения кода - извините. – Olaf
@Olaf "Вопросы, требующие отладки справки (« почему этот код не работает? ») ....« Вы издеваетесь? насколько я могу вам сказать, он НЕ ищет отладочную помощь, и этот код, вероятно, работает. С того момента, когда мы не являемся сайтом для объяснения кода? Вот почему SO есть .. объяснить вещи людям. – Quest
@Quest Спасибо! так много для вашего комментария – andre