一日一コード 2.文字列を逆にする

さて、前回のコードを見た 面倒くさがり屋の初心者プログラマーなフロートさんは、 最近新調したふかふかのいすに腰掛けて、淀屋橋カメラで店員の話も聞かずに「これ。」とだけ言って買ったパソコンの十九インチ液晶画面をにらみながら ぽつりと「何で私がメモリの管理なんかしなきゃいけないのよ。」とつぶやくだろう。
そう、メモリの管理はめんどくさい上に問題になるからガーベッジコレクションのない言語では使わないほうがいい。
そこで、引き数をそのまま使ってしまえばいい。


inline void swapChar(char *a, char *b){char t= *a; *a= *b; *b=t;}

void reversString(char str[])
{
const int length = strlen(str);
char *end = str + length -1; //一番後ろは\0
for(int i=0; i < length/2; i++)
{
swapChar(str++, end--);
}
}

このコードはエラーに対してものすごく無防備であるがそれはまた別のお話。別の機会に書くとしよう。

まとめページ