我正在寻找一种使用 boost 将句子中每个单词的首字母大写的方法。为了使代码一致,即如果输入语句中存在,最终输出将不包含任何空格或制表符。为了获得单个单词,我使用 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;
}