Ruby for C++ user / C言語のforをRubyで書き下す方法 PART.1
Powered by dKingyo 逆引きハンドブック | ポケットリファレンス | Game Programming Gems | TOEFL 突破 | TurboGears
http://0xcc.net/blog/archives/000137.html
や
http://www3.atwiki.jp/nanakoso/pages/23.html
に触発されて、
C言語で書く場合forはよく文字列参照として用いるが、それをRubyで行う場合どうするかを比較してみた。
C言語の場合
#include <stdio.h> #include <string.h> int main(){ const char *str = "moziretsu" size_t length = strlen(str),i; for(i=0;i<length;i++){ printf("%c\n",str[i]); } return 0; }
C++の場合
#include <iostream> #include <string> using namespace std; int main(){ string str = "moziretsu"; for(size_t i=0;i<str.size();i++){ cout << str[i] << endl; } return 0; }
Rubyの場合
str = String.new("moziretsu") for i in 0..str.length - 1 do puts sprintf("%c",str[i]) #puts str[i]でもOK end
str.length - 1 に注目
Rubyに慣れるとC/C++を書くときに
を忘れて困る。
;