【C言語】
argc,argvを使って
コマンドライン引数を
逆順表示する方法


■Linux echo風コマンド

//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

//逆順 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

//文字列逆順 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

//全部逆順 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/.