strtok segmentation fault,另一种拆分字符串的方法?
strtok segmentation fault, another way to split strings?
好吧,我在使用 Strtok 时遇到了麻烦。我读了很多帖子说我不能将 char * 与 strtok 一起使用,但是,我还能用什么来拆分字符串 (char*)?或者你知道用指针使用 strtok 的方法吗?
int play(char** matrixGame, char** matrixUser, int rows, int columns, char* input)
{
char * token2;
int x,y;
char * inputPlay;
inputPlay = (char*)malloc(sizeof(char)*10);
token2 = strtok(input, " ");
x = atoi(token2);
token2 = strtok(NULL, " ");
y = atoi(token2);
token2 = strtok(NULL, " ");
strcpy(inputPlay,token2);
}
希望大家能帮帮我,谢谢。
这些答案解决了 OP 的问题 strtok segmentation fault, another way to split strings?
还有一个叫做strsep
的函数,但是没有标准化。根据您的用途,您也可以使用它。 (以便携性为代价)。
您可以编写自己的 strtok
版本,丢掉您不喜欢 strtok
的地方。
您可以通过前面讨论的这个话题好好看看这个discussion。如果您根据自己的目的实施这些问题,例如更改第一个参数或不处理常量 char 数组等问题是可以解决的。
我发现发生了什么。我之前在另一个也使用 strtok 的函数中使用了输入,我认为输入是一些字符串,如 2 2 x,但 strtok 修改了我的输入,它只是一个 2,而不是完整的字符串。所以,不要使用相同的变量。
非常感谢大家。
好吧,我在使用 Strtok 时遇到了麻烦。我读了很多帖子说我不能将 char * 与 strtok 一起使用,但是,我还能用什么来拆分字符串 (char*)?或者你知道用指针使用 strtok 的方法吗?
int play(char** matrixGame, char** matrixUser, int rows, int columns, char* input)
{
char * token2;
int x,y;
char * inputPlay;
inputPlay = (char*)malloc(sizeof(char)*10);
token2 = strtok(input, " ");
x = atoi(token2);
token2 = strtok(NULL, " ");
y = atoi(token2);
token2 = strtok(NULL, " ");
strcpy(inputPlay,token2);
}
希望大家能帮帮我,谢谢。
这些答案解决了 OP 的问题 strtok segmentation fault, another way to split strings?
还有一个叫做strsep
的函数,但是没有标准化。根据您的用途,您也可以使用它。 (以便携性为代价)。
您可以编写自己的 strtok
版本,丢掉您不喜欢 strtok
的地方。
您可以通过前面讨论的这个话题好好看看这个discussion。如果您根据自己的目的实施这些问题,例如更改第一个参数或不处理常量 char 数组等问题是可以解决的。
我发现发生了什么。我之前在另一个也使用 strtok 的函数中使用了输入,我认为输入是一些字符串,如 2 2 x,但 strtok 修改了我的输入,它只是一个 2,而不是完整的字符串。所以,不要使用相同的变量。 非常感谢大家。