我是C新手,我有一个代码,但我不明白它的一部分。解释字符串的C代码tokenizer
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] = &字符串第[i + 1];
如果有人可以请让过程可视化,我将不胜感激。 谢谢
使用调试器并逐步执行代码。你有你的“可视化”。 “寻求调试帮助的问题(”为什么这个代码不工作?“)必须包含所需的行为,特定的问题或错误以及在问题本身中重现问题所需的最短代码。给其他读者。请参阅:如何创建[mcve]。“如果有效,无论如何这都是OT,我们不是代码解释站点 - 对不起。 – Olaf
@Olaf“寻求调试帮助的问题(”为什么不是这个代码工作?“)....” - 你在开玩笑吗?据我可以告诉你,他不寻求调试帮助,这个代码可能工作。从什么时候我们不是代码解释站点?这就是为什么SO在那里向人们解释事情的原因。 – Quest
@查询谢谢!你的评论太多了 – andre