我正在使用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
该功能是否已弃用?还是我犯了一个愚蠢的错误?提前谢谢你们。
答案 0 :(得分:7)
Linux Man Pages不提供Windows平台的文档。您需要使用以下功能之一:
strtok_s,_strtok_s_l,wcstok_s,_wcstok_s_l,_mbstok_s,_mbstok_s_l