c - strtok() 崩溃

c - strtok() crashing

我遇到了 strtok 的问题:

void getFile(FILE *fp, TParts *str)
{
    char a[60], *b;
    int p = 0, m = 0;
    while(fgets(a, 60, fp) != NULL)
    {
        b = strtok(a, '$');
...

调用strtok时程序崩溃。字符串中的标记用 $ 分隔。怎么了?

错误是由于strtok的第二个参数必须是一个字符串。这是一个有效的示例代码:

#include <stdio.h>
#include <string.h>

int main()
{
    char a[60] = "fadf$safgs$afd$", *b;

    b = strtok(a, "$");

    while( b != NULL ) {
          printf( " %s\n", b );

          b = strtok(NULL, "$");
    }

    return 0;
}