私がやろうとしているのは、コマンドライン引数を個々の文字として配列に追加することです。したがって、ユーザーがプログラムを実行すると、./program bacon
「ベーコン」は次のように配列に格納されます。
array k[]= {'b', 'a', 'c', 'o', 'n'};
私はプログラミングに不慣れであるということを十分に説明したことを願っています。
私がやろうとしているのは、コマンドライン引数を個々の文字として配列に追加することです。したがって、ユーザーがプログラムを実行すると、./program bacon
「ベーコン」は次のように配列に格納されます。
array k[]= {'b', 'a', 'c', 'o', 'n'};
私はプログラミングに不慣れであるということを十分に説明したことを願っています。
mainに渡された引数を使用します。これを行う配列argv[1]はすでに取得されています。始めるには、このような記事を読むのが最善だと思います-http://publications.gbdirect.co.uk/c_book/chapter10/arguments_to_main.html
ですから、あなたはプログラミングに不慣れだと思いますが、確かにこれは見覚えがありますね。
int main (int argc, char **argv) {
// ...
}
char **argv
はcharポインターへのポインターですが、目的上、。と同等であると見なすことができますchar *argv[]
。違いは微妙ですが、注目に値します。この警告は、Cでの文字列の動作を理解するために不可欠です。文字列char *argv[]
はcharポインターの配列として明示的に入力されchar **argv
ますが、配列の場合もありますが、アクセスしようとするまでわかりません。そのような。それがあなたの主な機能であることを考えると、これは常に適切にインスタンス化されると考えるのが安全です。
とにかく、接線を越えて移動するchar **argv
と、main関数にnullで終了する文字列の配列があります。あなたの質問から、私たちがたどるべき簡単な道を見ることができます。予想される引数は1つだけだと思います(そうでなければ、さまざまな状況に対処するケースを実装できるはずです)。
argv[1]
プログラムに渡された最初の引数()の長さを取得します。argv[1]
ます。この関数では、 tomain
の長さを格納し、sizeの配列を宣言します。次に、最初の文字列を文字ごとに繰り返し、各文字を配列の次の空きスロットに格納します。最後に、ループを繰り返し、配列の各項目を出力して、機能することを確認します。argv[1]
n
n
int main (int argc, char *argv[]) {
int n = strlen(argv[1]);
char arr[n];
int i;
for (i = 0; i < n; i++)
arr[i] = argv[1][i];
for (i = 0; i < n; i++)
printf("%c ", arr[i]);
printf("\n");
}
お役に立てれば。乾杯。