本文整理汇总了C++中Wtroka::begin方法的典型用法代码示例。如果您正苦于以下问题:C++ Wtroka::begin方法的具体用法?C++ Wtroka::begin怎么用?C++ Wtroka::begin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Wtroka
的用法示例。
在下文中一共展示了Wtroka::begin方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ToFirstUpper
void ToFirstUpper(Wtroka& str)
{
if (!str.empty() && ::IsLower(str[0]))
*(str.begin()) = static_cast<wchar16>(::ToUpper(str[0]));
// TODO: this does not work properly for surrogate pairs (UTF-16)
}
示例2: EqualCiRus
bool EqualCiRus(const Wtroka& s1, const char* s2) {
static const CodePage& cp = *CodePageByCharset(CODES_WIN);
const ui16* w = s1.begin();
for (; w != s1.end() && *s2 != 0; ++w, ++s2)
if (::ToLower(*w) != ::ToLower(cp.unicode[static_cast<ui8>(*s2)]))
return false;
return w == s1.end() && *s2 == 0;
}
示例3: FindCloseQuoteInNextSentences
// ищет закрывающую кавычку в текущем или последующем предложениях,
// добавляет все слова до закрывающей кавычки к ResultToAdd
// игнорируем внутренние кавычки
bool CQuotesFinder::FindCloseQuoteInNextSentences(int StartSentNo, int StartWordForFirstSentence, Wtroka& ResultToAdd,
yvector<SFactAddress>& FioInQuotes, SLeadInfo& LeadInfo)
{
Wtroka Add;
yvector<SFactAddress> AddFioInQuotes;
int Depth = 1;
for (int SentNo=StartSentNo; (SentNo-StartSentNo<=2)&& (SentNo< (int)m_vecSentence.size()); SentNo++) {
CSentenceRusProcessor* pSent = GetSentPrc(SentNo);
yset<int> QuoteWords;
int k=0;
if (SentNo == StartSentNo)
k = StartWordForFirstSentence;
for (; k < (int)pSent->getWordsCount(); k++) {
const CWord& w = *pSent->getWordRus(k);
Add += w.GetOriginalText() + ' ';
QuoteWords.insert(k);
bool bHasCloseQuote = false;
if (w.HasOpenQuote()) {
if (ispunct(w.GetText()[0])) {
Depth--; // одиночную кавычку знака препинания считаем закр. кавычкой (кто-то по ошибке поставил пробел)
bHasCloseQuote = true;;
} else
Depth++;
}
if (w.HasCloseQuote()) {
Depth--;
if ((Depth == 1) // Закрывающая кавычка в конце предложения закрывает все открытые кавычки.
&& ((k+1 == (int)pSent->getWordsCount())
|| ((k+2 == (int)pSent->getWordsCount())
&& pSent->getWordRus(k+1)->IsPunct()
)
)
) {
Depth = 0;
}
bHasCloseQuote = true;
}
if (w.GetText() == Wtroka::FromAscii("\"")) {
if (k+1 == (int)pSent->getWordsCount() || pSent->getWordRus(k+1)->IsPunct()) {
bHasCloseQuote = true;
Depth--;
}
}
if (bHasCloseQuote && Depth == 0) {
if (!Add.empty() && Add[0] == '-') {
const wchar16* beg = Add.begin() + 1;
StripRangeBegin(beg, Add.end());
Add.assign(beg, Add.end() - beg);
}
if (ResultToAdd.back() == ',' && Add.size() > 0 && NStr::IsLangAlpha(Add[0], TMorph::GetMainLanguage()) && ::IsUpper(Add[0])) {
ResultToAdd.erase(ResultToAdd.size() - 1);
ResultToAdd += CharToWide(". ");
}
ResultToAdd += Add;
AddFios(SentNo, QuoteWords, AddFioInQuotes);
FioInQuotes.insert(FioInQuotes.end(), AddFioInQuotes.begin(), AddFioInQuotes.end());
LeadInfo.m_iLastSent = SentNo;
return true;
}
}
AddFios(SentNo, QuoteWords, AddFioInQuotes);
}
return false;
}