我正在寻找一种方法来使用增强功能在句子中对每个单词的首字母进行大写。 为了使代码保持一致,即最终输出在输入句子中不存在任何空格或制表符。要使用boost :: alogrithm :: 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;
}
我们是在说ASCII还是应该是Unicode兼容? (提示:据我所知,Boost不支持Unicode) –
截至目前我只考虑ASCII。但是,将来需要Unicode支持。 –
对于Unicode,您需要一个能够识别unicode的库(可能像ICU一样)来实际利用该单词;因此分裂+加盟战略目前成本很高,但长期来看还是有效的。 –