是的,我也是新手。我已经有这个问题很长一段时间了。我正在尝试使用 strtok 拆分字符串,但问题是它不起作用。我已经查看了手册页上的示例以及在线示例,但我仍然没有答案。
在下面的代码中,我尝试使用本网站中给出的示例代码作为答案。原来的while循环是:
char str[] = "hello world how are you?\n";
char *res;
res = strtok(str, " \n");
puts(res);
while (res != NULL)
{
res = strtok(NULL, " \n");
if(res!=NULL)
puts(res);
}
但是当将 str 更改为数据及其各自的分隔符 (&=) 时,它就变成了分段错误。我该如何解决?代码有什么问题?这是完整的代码。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *data;
data = "integer1=1&integer2=2&integer3=3&integer4=4";
puts(data);
char str[] = "hello world how are you?\n";
char *res;
res = strtok(data, "=&");
puts(res);
while (res != NULL)
{
res = strtok(NULL, "=&");
if(res!=NULL)
puts(res);
}
return 0;
}
顺便说一句,strtok_r 函数也不起作用。