c - strtok()崩溃了

时间:2018-04-06 18:37:27

标签: c strtok

我用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时程序崩溃。字符串中的标记用$分隔。怎么了?

1 个答案:

答案 0 :(得分:1)

故障归结为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;
}