文字列操作の比較表
文字列操作の比較表: 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!
かと。
すでに修正されてます。