■Linux echoコマンドとは
コマンドライン引数をそのままオーム返しに画面表示するコマンドです。
■自作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/.
参考: