○下記のコードについての質問になります
#include <stdio.h>
int main(
intargc,/*コマンドライン引数*/
char*argv[]/*コマンドライン*/
)
{
int counter;/*ループカウンタ*/
for( counter = 0 ; counter < argc ; counter++)
{
printf( "argv[%d]:%s\n" , counter , argv[counter] );
}
/*-----------------------------------------------------------
printf( "コマンドラインの1文字を抜き取る:%c" , ????????);
------------------------------------------------------------*/
return (0);
}
○質問
コマンドラインのプログラムになります。
「--」で囲っている部分になりますが、
コマンドラインに入力されている文字列の1文字だけを出力できるように
したいのですが、どうすればこれを実現することができるのでしょうか??
一例として
>command.exe orange ringe
^^^^^^
と、コマンドを打ったときに、「^^」の部分になりますが、
orangeの「a」だけを出力させたい場合を、知りたいと思っております。
以上、宜しくお願いします。
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 さんが記述して下さい。
納得しました^^
ポインタ配列なのをすっかり忘れていました。
色々なやり方があるので、なかなかそれに対応するのが難しいところです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- C言語・C++・C# C言語について コマンドラインで >変数 12.00 (char型) と、小数点付きの値を共用体に渡 1 2022/04/22 16:56
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語 配列とポインタについて 3 2023/02/09 22:53
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fgetsなどのときのstdinのバッ...
-
テキストデータをそのままバイ...
-
charでの計算?
-
C言語のfor文です。 繰り返しの...
-
charからLPTSTRへの変換方法
-
str系関数を使わずに二つの文字...
-
文字列から空白を取り除きたい...
-
C言語の入力した文字を反転させ...
-
間接操作のレベルとは
-
ftoa の作り方
-
絶対パスからのファイル名の切...
-
エンディアン:2バイトのデー...
-
C++のCreateFile関数で、ASCII...
-
型変換
-
c言語の問題の説明、各所ごとに
-
バイトスワップをやりたい
-
atoi( ) の反対をやりたい
-
c言語プログラミング実行時エラ...
-
構造体のアライメント調整
-
間接参照のレベルが異なっています
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
charからLPTSTRへの変換方法
-
charでの計算?
-
配列をnビットシフトする
-
'const char *' 型は 'char *' ...
-
型変換
-
テキストデータをそのままバイ...
-
文字列から空白を取り除きたい...
-
CStringをwchar_tに変換したい
-
絶対パスからのファイル名の切...
-
fgetsなどのときのstdinのバッ...
-
ネットワークにつながっている...
-
str系関数を使わずに二つの文字...
-
3桁区切(コンマ)記号をつけ...
-
atoi( ) の反対をやりたい
-
double型の値をchar配列に変換...
-
C言語のfor文です。 繰り返しの...
-
switch文で文字を比較すること...
-
ファイル名である文字列からbas...
-
c++ 文字列を入力して、一文字...
-
strncpyと_tcsncpy_sのヌルの扱...
おすすめ情報