Strtok_r未解析的外部符号

时间:2016-09-15 00:23:06

标签: c visual-studio-2015

我正在使用Visual Studio 2015,我正在尝试使用strtok_r。由于某种原因,编译器无法识别它。

这是我的代码:

#include <string.h>
#include <stdlib.h>
#include <assert.h>

char** str_split(char* a_str, const char a_delim, int * argc)
{
   ... some other code
   if (result)
    {
    size_t idx = 0;
    char* saveptr = a_str;
    char* token = strtok_r(a_str, delim, &saveptr);
    //char * token;
    while (token)
    {
        assert(idx < count);
        *(result + idx++) = strdup(token);
        token = strtok_r(0, delim, &saveptr);
    }
    assert(idx == count - 1);
    *(result + idx) = 0;
  }

return result;

我一直在关注此文档:http://linux.die.net/man/3/strtok_r

该功能是否已弃用?还是我犯了一个愚蠢的错误?提前谢谢你们。

1 个答案:

答案 0 :(得分:7)

Linux Man Pages不提供Windows平台的文档。您需要使用以下功能之一:

  

strtok_s,_strtok_s_l,wcstok_s,_wcstok_s_l,_mbstok_s,_mbstok_s_l

[0] https://msdn.microsoft.com/en-us/library/2c8d19sb.aspx