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!