【c++】lowerCase, upperCase

c++

文字列比較の際に大文字小文字の区別を無視したいのでどちらかに寄せようとタイトルの様なメソッドを探しました。

int toupper(int _c)
int tolower(int _c)

なる関数が見つかりました。

んー、欲しいのはstringを投げてupper/lowerに寄ったstringが返って来る関数なんだよなー。

色々調べたら出て来ました。
C++ マニアック

僕は後者の方が良いかなと思ったので後者を利用してメソッド化しました。

string StringUtil::tolower(const string &str)
{
    // 元のstrのコピーを取る
    string lower = str;
    transform(lower.begin(), lower.end(), lower.begin(), ::tolower);

    return lower;
}

toupperも同様です。

string StringUtil::toupper(const string &str)
{
    // 元のstrのコピーを取る
    string upper = str;
    transform(upper.begin(), upper.end(), upper.begin(), ::toupper);

    return upper;
}

誰かのお役に立てば。

このブログのcocos記事一覧

コメント

タイトルとURLをコピーしました