【C言語】
argc,argvの基本的な使い方
~コマンドライン引数を表示する~

■この記事の概要

この記事では、C言語でコマンドライン引数を逆順で表示する方法を解説しています。argcargvの基本的な使い方から、単語や文字列を逆順にするプログラム例を紹介。さらに、複数のアプローチで逆順表示を実現し、各例の実行結果を示しています。


■argc,argvとは?

〇argc=argument count
プログラムを呼び出したコマンド行の引数の個数

〇argv=argument vector
引数文字列を指すポインタの配列

■コマンドライン引数表示

//echo風  
#include <stdio.h>

int main(int argc,char *argv[]){
    for(int i = 0;i<argc;i++){
        printf("argv[%d]=%s\n",i,argv[i]);
    }
}
./a.out   12 345 6789
argv[0]=./a.out
argv[1]=12
argv[2]=345
argv[3]=6789

■コマンドライン引数逆順表示

//逆順 echo  
#include <stdio.h>

int main(int argc,char *argv[]){
    for(int i = argc-1; i>=0; i--){
        printf("argv[%d]=%s\n",i,argv[i]);
    }
}
./a.out   12 345 6789
argv[3]=6789
argv[2]=345
argv[1]=12
argv[0]=./a.out

■コマンドライン引数反転表示

//文字列逆順 echo
#include <stdio.h>
#include <string.h>
//文字列逆順
void    string_reverse(char *str){
    size_t len = strlen(str);
    for(int i = len-1;i>=0;i--){
        putchar(str[i]);
    }
    putchar('\n');
}
int main(int argc,char *argv[]){
    for(int i = 0;i < argc ;i++){
        printf("vgra[%d]=",i);
        string_reverse(argv[i]);
    }
}
./a.out   12 345 6789
vgra[0]=tuo.a/.
vgra[1]=21
vgra[2]=543
vgra[3]=9876

■コマンドライン引数反転逆順表示

//全部逆順 echo
#include <stdio.h>
#include <string.h>
//文字列逆順
void    string_reverse(char *str){
    size_t len = strlen(str);
    for(int i = len-1;i>=0;i--){
        putchar(str[i]);
    }
    putchar('\n');
}
int main(int argc,char *argv[]){
    for(int i = argc-1; i >= 0; i--){
        printf("vgra[%d]=",i);
        string_reverse(argv[i]);
    }
}
./a.out   12 345 6789
vgra[3]=9876
vgra[2]=543
vgra[1]=21
vgra[0]=tuo.a/.

参考:

comp.lang.c FAQ list ·Question 20.3