Example Text:
bclk = /gsrpkg_te/gsrpkg/gsrdie/xxBCLK
Run Code Online (Sandbox Code Playgroud)
我想问一下关于"strtok"的问题.Below是一个示例代码,我遇到了一些疑问.
char *p4;
char *p5;
p4 = strtok (eqvline, "=");
p5 = strtok (NULL, ":");
if ( !strcmp (p4, "bclk") ) {
strcpy ( sa_de_bclk, p5 );
printf ( "[vTPSim] ---> bclk = %s.\n", p5);
}
Run Code Online (Sandbox Code Playgroud)
从上面的示例文本中没有":"(冒号)where.For我理解strtok()何时没有定义的符号被发现NULL将被分配为结果.
但是,为什么在这种情况下即使没有":",p5仍然有分配"/gsrpkg_te/gsrpkg/gsrdie/xxBCLK".
谢谢你的帮助.
小智 5
为了解strtok,当没有定义的符号时,会发现NULL将被分配为结果
也许你会strtok()和strchr()或者混淆strstr().如果在字符串的剩余部分中找不到任何分隔符号,则strtok()返回剩余部分(更准确地说,是指向其第一个字符的指针).如果根本找不到分隔符,则可能是整个字符串.文档.
从haters和deniers的文档引用:
如果没有找到这样的字节,则当前令牌扩展到 s1指向的字符串的末尾,随后对令牌的搜索将返回空指针.
随后.没有立即呼叫找不到更多的分隔符,而是跟随它的那些分隔符.