• ベストアンサー

コマンドライン引数

コマンドラインから文字列として取得して、 ほかの変数に文字列として入れたいのですが、どうしたらいいですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.2

mainの宣言方法は#1さんで回答が出ているのでそれ以降の処理について書きます。 argv で引数を受け取ったあとは strcpy 関数などで別の変数にコピーできます。 char work[128]; strcpy( work, argv[1] ); strcpy の2番目の引数でコピーしたい引数の位置を指定してください。 0番目は自分自身のファイル名になっているので1番目からということになります。 またコピーする前に argc で引数の数をチェックして、引数が入力されていればコピーする等の処理も必要です。 そして当然ながらコピー先の領域も十分確保し、コピーする前に引数の長さを strlen 等でチェックする必要もありますね。 ただ参照するだけということであれば char 型のポインタ変数を用意してアドレスだけコピーしたほうがいいかもしれませんね。 char *p; p = argv[1];

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.1

main(int argc, char *argv[]) と記述しておけばよいです。 int argc: 引数の総個数(プログラム名も含む) char *argv[]: 引数の文字列を指すポインタの配列を表します。 参考URLにサンプルがあります。

参考URL:
http://www9.plala.or.jp/sgwr-t/c/sec11-4.html
すると、全ての回答が全文表示されます。

関連するQ&A