文字列である入力行からいくつかの数値を抽出します。入力行を解析するc
command 1 2 3 4 5
これまでのところ、私はこれをやったが、それが正常に動作していない:
私は間違っif (strncmp(line,"command",7) == 0){
char *p = strtok(line," ");
while (p !=NULL){
param1 = atoi(p[1]);
param2 = atoi(p[2]);
param3 = atoi(p[3]);
param4 = atoi(p[4]);
param5 = atoi(p[5]);
p = strtok(NULL," ");
}
}
?文字列は次のようになりますか
なぜあなたはp [x]のアドレスを取得しますか? atoi関数が正しく動作するためには、手動で文字列をnullにする必要があります。 – Ulterior
'strtok()'は、一度に1つのトークンを与えることによって動作します。いくつかのトークンについては、関数を何回か呼び出す必要があります。 – pmg
strtokは推奨されていません。代わりにstrsepを使ってみてください - マニュアルページを参照してください。 –