文字列操作の比較表

文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ - bkブログ
便利だし面白いです。 C++ で空白ところをちょっと考えてみました。

Ruby C++
s.upcese! transform(s.begin(), s.end(), s.begin(), (int (*)(int))toupper)
s.downcese! transform(s.begin(), s.end(), s.begin(), (int (*)(int))tolower)
s.lstrip s.substr(s.find_first_not_of(" \t\r\n\f\v"))
s.rstrip s.substr(0, s.find_last_not_of(" \t\r\n\f\v")+1)

なんかどれもイマイチ。
Boost を使っていいのなら string_algo とか regex, format, toknizer あたりで大抵のことは出来ますね。あと BOOST_FOREACH はすごく便利なんじゃないかと(最近あまりC++使って無いのでなんとも言えませんが)。

ところでコメント機能が無いみたいなので、気になったことを以下に。

  • boost::lexical_cast って16進とか8進表示の指定って出来ませんよね?
  • s.substr(i, j ? i + 1)s.substr(i, j ? i)s.substr(i, j - i + 1)s.substr(i, j - i) ですね。 文字化け?
  • s.lstrip が2つありますけど2つ目は s.lstrip! かと。

すでに修正されてます。