CLX C++ Libraries - case_conv
Author: clown

CLX C++ Libraries
Home >> salgorithm >> case_conv

# Declarations

    String& upcase(String& s, const std::locale& loc = std::locale());
    String upcase_copy(const String& s, const std::locale& loc = std::locale());
    String& upcase_if(String& s, PredicateFunc f,
        const std::locale& loc = std::locale());
    String upcase_copy_if(const String& s, PredicateFunc f,
        const std::locale& loc = std::locale());

    String& downcase(String& s, const std::locale& loc = std::locale());
    String downcase_copy(const String& s, const std::locale& loc = std::locale());
    String& downcase_if(String& s, PredicateFunc f,
        const std::locale& loc = std::locale());
    String downcase_copy_if(const String& s, PredicateFunc f,
        const std::locale& loc = std::locale());

    String& swapcase(String& s, const std::locale& loc = std::locale());
    String swapcase_copy(const String& s, const std::locale& loc = std::locale());
    String& swapcase_if(String& s, PredicateFunc f,
        const std::locale& loc = std::locale());
    String swapcase_copy_if(const String& s, PredicateFunc f,
        const std::locale& loc = std::locale());

    String& capitalize(String& s, const std::locale& loc = std::locale());
    String capitalize_copy(const String& s, const std::locale& loc = std::locale());
    String& capitalize_if(String& s, PredicateFunc f,
        const std::locale& loc = std::locale());
    String capitalize_copy_if(const String& s, PredicateFunc f,
        const std::locale& loc = std::locale());

# Overview

upcase()，downcase() は，文字列中のアルファベットをそれぞれ，大文字，小文字にします． swapcase() は，大文字は小文字に，小文字は大文字に変換します．capitalize() は， 文字列中の先頭の文字を大文字に変換します．

upcase_copy()，downcase_copy()，swapcase_copy()，capitalize_copy() は， 引数として指定された文字列を直接変更せず，コピーした文字列を変更します． また，upcase_if()，downcase_if()，swapcase_if()，capitalize_if() は， PredicateFunc で指定された Functor が真を返した文字にのみ操作を行います．

尚，Declarations においては template < ... > の部分を省略していますが， 単語の先頭が大文字になっているものはテンプレート引数として渡される型です（ただし， String は std::basic_string<CharT, Traits>）．

# Example

example_case_conv.cpp

    #include <iostream>
    #include <string>
    #include "clx/salgorithm.h"

    int main(int argc, char* argv[]) {
        std::string s = "hello, world!";

        std::cout << "original: " << s << std::endl;
        std::cout << "upcase: " << clx::upcase_copy(s) << std::endl;
        std::cout << "capitalize: " << clx::capitalize_copy(s) << std::endl;

        return 0;
    }

    Result
    original: hello, world!
    upcase: HELLO, WORLD!
    capitalize: Hello, world!