私はポインターが得意ではないので、私が間違っていることがわかるかもしれません。
次のように初期化された配列があるとしましょう。
char *arrayOfCommands[]={"ls -l", "wc -l"};
私の目標は、この配列からchar * currentCommand という配列を取得することです。この配列は、arrayOfCommands の特定のセルを見て、コマンドをスペースで分割します。
私の最終的な目標は、各ループに次のような新しい currentCommand 配列を作成することです。
First Loop:
currentCommand = [ls][-l]
First Loop:
currentCommand = [wc][-l]
これが私がこれまでに持っているコードです:
for (i = 0; i < 2; ++i) {
char str[] = arrayOfCommands[i];
char * currentCommand;
printf ("Splitting string \"%s\" into tokens:\n",str);
currentCommand = strtok (str, " ");
while (currentCommand != NULL){
printf ("%s\n",currentCommand);
currentCommand = strtok (NULL, " ");
}
.
.
.
//Use the currentCommand array (and be done with it)
//Return to top
}
どんな助けでも大歓迎です!:)
アップデート:
for (i = 0; i < commands; ++i) {
char str[2];
strncpy(str, arrayOfCommands[i], 2);
char *currentCommand[10];
printf ("Splitting string \"%s\" into tokens:\n",str);
currentCommand = strtok (str, DELIM);
while (currentCommand != NULL){
printf ("%s\n",currentCommand);
currentCommand = strtok (NULL, DELIM);
}
}
次のエラーが表示されます: ** 割り当てに互換性のない型があります**
strtok 関数を渡している "str" について話しています。