重複の可能性:
C で区切り文字を使用して文字列を分割する
シェルをシミュレートするプログラムを Linux で作成しています。基本的な考え方は、最初に fgets を使用してユーザー入力の 1 行を取得することです。これは のようなものであると想定されています"ls -l"
。次に、この文字列を "ls" と "-l" に解析し、次のように 2 次元配列を作成しますchar *array[] = {"ls","-l"},
。execvpe
引数: 1 つ目も入力からのものです。つまり、上記の例では "ls" で、2 つ目は配列、3 つ目はいくつかのディレクトリを指定する配列のようなポインターです。
問題は、「ls -l」のような文字列を 2 次元配列に解析することです。malloc
私は配列を作成するつもりです。C で文字列を解析するのは非常に不便です。
"asd dg rg grhr"
のような文字列を のような配列に解析する良い方法はありますか{"asd","dg","rg","grhr"}
。
また、別の方法でシェルをシミュレートすることに関するアドバイスも大歓迎です。