我有一个包含空格的字符串,例如“print 2”或“print 3 test”。我正在尝试删除第一个参数 - 在这些示例中,打印。
我试过strtok():
char *test;
test = strtok(COMMAND, " ");
printf("%s\n", test);
但是打印测试会出现段错误。我尝试制作一个函数,它在 main() 中运行良好,但是当从我需要它的函数调用时,它也会出现段错误。
char* split(char S[], int N) {
printf("Running split() on %s\n", S);
int Spaces = 1;
int i = 0;
for (i; i<strlen(S) && Spaces <=N; i++) {
if (S[i] == ' ') {
Spaces++;
}
}
printf("split: %s\n", &S[i]);
//return "0";
return &S[i];
}
我猜这是某种指针问题。命令被传递到 print 函数中,如下所示:
Print(File, Lines, COMMAND);