我正在尋找一種方法來使用增強功能在句子中對每個單詞的首字母進行大寫。 爲了使代碼保持一致,即最終輸出在輸入句子中不存在任何空格或製表符。要使用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一樣)來實際利用該單詞;因此分裂+加盟戰略目前成本很高,但長期來看還是有效的。 –