- ベストアンサー
コマンドラインに入力されている文字列の1文字を出力
- コマンドラインに入力されている文字列の1文字を抽出する方法を教えてください。
- コマンドラインのプログラムで入力された文字列から1文字だけを取り出す方法を教えてください。
- コマンドラインの引数から1文字だけを抜き出す方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
★コマンドラインの引数と文字列について ・『command.exe orange ringe』という2つの引数が与えられたとき (1)argv[0]…"command.exe" (2)argv[1]…"orange" (3)argv[2]…"ringe" (4)argv[3]…NULL となります。なお、argv[0]は処理系によっては、起動パス名などが空になる場合があります。注意! ・1つの引数から1文字の取得(argv[1] が "orange" の場合) (1)argv[1][0]…'o' (2)argv[1][1]…'r' (3)argv[1][2]…'a' (4)argv[1][3]…'n' (5)argv[1][4]…'g' (6)argv[1][5]…'e' (7)argv[1][6]…'\0' となります。これは main() 関数の定義で『char *argv[]』となっているため、ポインタへの配列は 2次配列と同じような要領でアクセス(取得・設定)が可能です。 本題: ・上記のことから『orange』の『a』は argv[1][2] で取り出せます。→『*(argv[1] + 2)』でも可能。 for 文と添え字のカウンタ変数を2つ使えば1文字ずつの出力が出来ます。 『argv[counter][i]』という感じになります。 ・以上。おわり。→上記のを参考に for 文の部分は KGM さんが記述して下さい。
その他の回答 (2)
- mssine
- ベストアンサー率24% (38/156)
argv[1][2]
ちょっとしたサンプルです。 #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { if (argc >= 2) if (strlen(argv[1]) >= 3) printf("%c", argv[1][2]); return 0; } (注)インデントのため、全角空白を使っています。
お礼
回答ありがとうございます。 これを使って、プログラムを作成しました^^ また、何かあれば教えて下さい。
お礼
納得しました^^ ポインタ配列なのをすっかり忘れていました。 色々なやり方があるので、なかなかそれに対応するのが難しいところです。