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++を書くときに

;
を忘れて困る。