「print 2」や「print 3 test」など、スペースを含む文字列があります。最初の引数を削除しようとしています - これらの例では、print.
私は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(File, Lines, COMMAND);