2015年7月26日日曜日

[cocos2dx] で文字列を置換する【Replace】


文字列の置換関数を用意した理由

画面に見える文字列を整形する場合なんかは「StringUtils::format」でほとんどがなんとかなるんだけれど、内部データを整形する場合(例えばデリミタを置換したり、改行を入れてみたり)なんかは、文字列をまるっと置換できる仕組みがあったほうが嬉しかったりします。

今回はそんな文字列の置換関数です。



実際の関数



使い方


こんな感じで使います。
std::string result = stringReplace("I am Tom", "Tom", "Hogehoge");
//result は "I am Hogehoge" となります

簡単な説明

while(pos = result.find(from, pos), pos != std::string::npos) {
まずターゲットとなる文字列の開始位置を検索しながらループします。

result.replace(pos, from.length(), to);
次にターゲットとなる文字列を、置換する文字列に変換します。

pos += to.length();
ループの最後で次の文字列検索の準備をしています。



このプログラムが皆様のお役に立てば幸いです。

ではまた。


0 件のコメント:

コメントを投稿