2015年7月27日月曜日

[cocos2dx] でトリミング関数を作る【trim】


文字列のトリミング関数を用意した理由

スペースだけのトリミングはよくあるんですが、スペースはもちろんのこと改行やデリミタも含めてトリミングできたらなーと思って作りました。

今回はそんな文字列のトリミング関数です。



実際の関数



使い方


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

簡単な説明

std::string::size_type left = str.find_first_not_of(trimCharacterList);
対象文字(デリミタ文字)の含まれない左端を取得します。

if (left != std::string::npos) {
左端の取得に成功した場合は以下の処理を続行します。

std::string::size_type right = str.find_last_not_of(trimCharacterList);
対象文字(デリミタ文字)の含まれない右端を検索します。

result = str.substr(left, right - left + 1);
最後に左端から右端までをtrim内容として取得し、返却します。



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

ではまた。


0 件のコメント:

コメントを投稿