【发布时间】:2017-05-05 21:06:23
【问题描述】:
我有带有歌曲详细信息的链接列表,并且想要比较两首歌曲的名称......额外的任务是通过比不同的单词更多的相似词来比较它们......我使用 strtok 逐字获取它然后检查如果当前单词包含在另一个名称中...但是当我这样做时 strtok 清除我的字符串,除了第一个单词...我该如何逃脱呢?
while (next_token)
{
currentCounter++;
if (searchword(temp->author, next_token)==1)
{
counter++;
}
next_token = strtok(NULL, " ");
}
【问题讨论】:
-
您是否阅读了有关
strtok()实际操作的文档? -
strtok()的工作原理是用空字节覆盖分隔符,以便每个标记成为一个单独的字符串。如果您需要原始字符串,请在使用strtok()之前对其进行复制。 -
no no.... 例如 temp->author 是 "bon jovi"....在第一次迭代时 next_token 得到 "bon" 但在第二次删除 temp->author 中的所有内容,除了“bon”,无法转到下一个标记
-
您的第一个 strtok() 语句在哪里?你需要像
next_token = strtok( string, " ");这样的东西,在使用next_token = strtok(NULL, " ");之前应该在那里 -
仅仅提供那些试图帮助你的人所要求的东西有什么困难?显示原始输入字符串,以及对
strtok(.);的第一次调用,与失败的代码中的完全一样。
标签: c linked-list strtok