ブーストを使用して、文の各単語の最初の文字を大文字にする方法を探していました。コードの一貫性を保つため、つまり、入力文にスペースやタブが存在する場合、最終的な出力にはスペースやタブが含まれません。個々の単語を取得するには、boost::algorithm::split を使用し、それらを結合するために boost::algorithm::join を使用しています。しかし、どうすれば最初の文字を大文字にすることができますか?
このコードを試しました
#include <iostream>
#include <vector>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string.hpp>
int main()
{
using namespace std;
string str("cONtainS SoMe CApiTaL WORDS");
vector<string> strVec;
using boost::is_any_of;
using boost::algorithm::token_compress_on;
boost::algorithm::split(strVec, str, is_any_of("\t "), token_compress_on);
vector<string>::iterator i ;
for(i = strVec.begin() ; i != strVec.end(); i++)
{
(*i)[0] = boost::to_upper((*i)[0]);
cout<<*i<<endl;
}
return 0;
}