文字列を入力して逆順に出力
問題:テキスト1行を入力して、これを逆順に出力するプログラムを作れ。ポインタを使用せず配列を用いた形式で書き、ポインタを用いたものと比較せよ。
配列
#include <stdio.h> #include <string.h> int main() { char str[100]; int n; gets(str); for(n=strlen(str); n>0; n--) printf("%c", str[n-1]); return 0; }
ポインタ
#include <stdio.h> #include <string.h> int main() { char str[100], *p; gets(str); p = str + strlen(str) - 1; while(str <= p) putchar(*p--); return 0; }
同じくらいの読みやすさで書けた。ポインタのほうが高速に処理できる(はず)。