• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コマンドラインに入力されている文字列の1文字を出力)

コマンドラインに入力されている文字列の1文字を出力

このQ&Aのポイント
  • コマンドラインに入力されている文字列の1文字を抽出する方法を教えてください。
  • コマンドラインのプログラムで入力された文字列から1文字だけを取り出す方法を教えてください。
  • コマンドラインの引数から1文字だけを抜き出す方法を教えてください。

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.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 さんが記述して下さい。

KGM
質問者

お礼

納得しました^^ ポインタ配列なのをすっかり忘れていました。 色々なやり方があるので、なかなかそれに対応するのが難しいところです。

その他の回答 (2)

  • mssine
  • ベストアンサー率24% (38/156)
回答No.2

argv[1][2]

noname#26650
noname#26650
回答No.1

ちょっとしたサンプルです。 #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; } (注)インデントのため、全角空白を使っています。

KGM
質問者

お礼

回答ありがとうございます。 これを使って、プログラムを作成しました^^ また、何かあれば教えて下さい。

関連するQ&A