重複の可能性:
文字列の最初の文字を大文字に変換する
文字列を C++ のタイトル ケースの "hello world" から "Hello World" に変換するにはどうすればよいですか。文字列にはマルチバイト文字を含めることもできます
重複の可能性:
文字列の最初の文字を大文字に変換する
文字列を C++ のタイトル ケースの "hello world" から "Hello World" に変換するにはどうすればよいですか。文字列にはマルチバイト文字を含めることもできます
さて、前の質問のアドバイスに従えば、文字列の最初の文字を大文字に変換する場合、文字列をそれぞれ 1 つの単語に分割し、大文字にするだけで済みます。
std::wstring s = L"iron maiden";
if(s.length() > 0)
s[0] = toupper(s[0]);
for(std::wstring::iterator it = s.begin() + 1; it != s.end(); ++it)
{
if(!isalpha(*(it - 1)) &&
islower(*it))
{
*it = toupper(*it);
}
}
基本的に、パーサーを作成/使用するだけです。