main関数の引数argvとcharについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ハシビロコウ

main関数の引数argvとcharについて

#1

投稿記事 by ハシビロコウ » 1年前

入力として英語大文字または数字を受けてとるというプログラムのメイン関数について

コード:


int main(int argc, char *argv[])
{
	char c = argv[1][0];
}
という部分はargv[1]でないのはなぜですか?

box
記事: 2002
登録日時: 13年前

Re: main関数の引数argvとcharについて

#2

投稿記事 by box » 1年前

argvはchar型の配列へのポインターだからです。
argv[1]はchar型の配列の要素であり、型はchar *です。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

box
記事: 2002
登録日時: 13年前

Re: main関数の引数argvとcharについて

#3

投稿記事 by box » 1年前

argvはchar型の配列へのポインターだからです。
argvはchar型へのポインターの配列、と言った方が正確だったかな?
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

box
記事: 2002
登録日時: 13年前

Re: main関数の引数argvとcharについて

#4

投稿記事 by box » 1年前

こんなサンプルコードをコマンドプロンプトかどこかで
実行ファイル名 hoge foobar <enter>
みたいに実行してみると、何か体感できるかもしれません。

コード:

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
    int i, j;

    for (i = 1; i < argc; i++) {
        printf("%s\n", argv[i]);
        for (j = 0; j < strlen(argv[i]); j++) {
            putchar(argv[i][j]);
            putchar('\n');
        }
        putchar('\n');
    }
	return 0;
}
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
あたっしゅ
記事: 663
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: main関数の引数argvとcharについて

#5

投稿記事 by あたっしゅ » 1年前

東上☆海美☆「
> char c = argv[1][0];

char c と argv[ 1 ] を生かすなら

char c = *( argv[ 1 ] );

みみ。

コード:

#include <stdio.h>
#include <string.h>


int main(int argc, char *argv[])
{
    char c = *( argv[ 1 ] );

    putchar(c);
    putchar('\n');

    return 0;
}
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

返信

“C言語何でも質問掲示板” へ戻る