本文整理汇总了C++中CFSWString::ToLower方法的典型用法代码示例。如果您正苦于以下问题:C++ CFSWString::ToLower方法的具体用法?C++ CFSWString::ToLower怎么用?C++ CFSWString::ToLower使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFSWString
的用法示例。
在下文中一共展示了CFSWString::ToLower方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: syllabify2
CFSWString syllabify2(CFSWString s) {
CFSWString res;
for (INTPTR i = 0; i < s.GetLength(); i++) {
CFSWString c = s.GetAt(i);
if (is_consonant(c) && is_vowel(s.GetAt(i - 1)) && is_vowel(s.GetAt(i + 1)))
res += d;
if (is_vowel(c) && is_vowel(s.GetAt(i - 1)) && is_vowel(s.GetAt(i + 1)) && c.ToLower() == s.GetAt(i + 1))
res += d;
if (is_consonant(c) && is_consonant(s.GetAt(i - 1)) && is_vowel(s.GetAt(i + 1)) && has_vowel(res)) //küsitav
res += d;
res += c;
}
return res;
}
示例2:
CFSArray<CFSWString> do_all(CFSWString utt, bool print_label, bool print_utt) {
CFSArray<CFSWString> res;
CFSArray<CPTWord> PTW;
utterance_struct u;
u.s = utt.ToLower();
u.syl_c = 0;
u.phone_c = 0;
u.phra_c = do_phrases(u);
INTPTR word_count = 0;
if (print_utt) fprintf(stderr, "%s\n", ccstr(utt));
for (INTPTR i = 0; i < u.phr_vector.GetSize(); i++) {
u.phr_vector[i].utt_p = i;
phrase2words(u.phr_vector[i], PTW);
word_count += u.phr_vector[i].word_c;
}
CFSArray<CMorphInfo> words;
for (INTPTR i = 0; i < PTW.GetSize(); i++) {
CMorphInfo MI;
MI.m_szRoot = PTW[i].m_szWord;
words.AddItem(MI);
}
u.word_c = words.GetSize();
word_struct w;
INTPTR utt_phone_c = 1;
INTPTR syl_utt_p = 1;
INTPTR phone_utt_p = 1;
for (INTPTR i = 0; i < u.phr_vector.GetSize(); i++) {
u.phr_vector[i].utt_p = i + 1;
INTPTR syl_phr_p = 1;
INTPTR phone_phr_p = 1;
INTPTR phrase_pho_c = 1;
for (INTPTR i1 = 0; i1 < u.phr_vector[i].word_c; i1++) {
w.utt_p = utt_phone_c++;
w.phr_p = i1 + 1;
w.mi = words[0];
w.mi.m_szRoot += make_char_string(w.mi.m_szEnding) + w.mi.m_szClitic;
w.mi.m_szRoot = w.mi.m_szRoot.ToLower();
do_syls(w);
u.phr_vector[i].word_vector.AddItem(w);
INTPTR phone_word_p = 1;
INTPTR word_pho_c = 1;
for (INTPTR i2 = 0; i2 < u.phr_vector[i].word_vector[i1].syl_vector.GetSize(); i2++) {
u.syl_c++;
u.phr_vector[i].syl_c++;
u.phr_vector[i].word_vector[i1].syl_c++;
u.phr_vector[i].word_vector[i1].syl_vector[i2].phr_p = syl_phr_p++;
u.phr_vector[i].word_vector[i1].syl_vector[i2].utt_p = syl_utt_p++;
INTPTR syl_phone_c = 1;
do_phones(u.phr_vector[i].word_vector[i1].syl_vector[i2]);
for (INTPTR i3 = 0; i3 < u.phr_vector[i].word_vector[i1].syl_vector[i2].phone_vector.GetSize(); i3++) {
u.phone_c++;
u.phr_vector[i].phone_c = phrase_pho_c++;
u.phr_vector[i].word_vector[i1].phone_c = word_pho_c++;
u.phr_vector[i].word_vector[i1].syl_vector[i2].phone_c = syl_phone_c++;
phone_struct p = u.phr_vector[i].word_vector[i1].syl_vector[i2].phone_vector[i3];
p.utt_p = phone_utt_p++;
p.phr_p = phone_phr_p++;
p.word_p = phone_word_p++;
u.phr_vector[i].word_vector[i1].syl_vector[i2].phone_vector[i3] = p;
}
}
words.RemoveItem(0, 1);
}
}
if (print_label) print_u(u);
res = do_label(u);
return res;
}
示例3: the_shift
CFSWString the_shift(CFSWString s) {
/*
On mingi võimalus, et lihtsustus tuleb teha kahes astmes. LQ-ta ja LQ-ga (vt shift_pattern). Kõik
seotud sellega, et pole vältenihutusreeglitest lõpuni aru saanud. Eksisteerib Mihkla versioon ja
ametlik versioon. Tänud Mihklale, kes kala asemel annab tattninale õnge, see õpetab ujuma.
Maadlesin õngega pikalt.
*/
CFSWString res;
CFSWString code;
INTPTR pos;
INTPTR i = 0;
INTPTR x;
while (s.GetLength() > 0) {
CFSWString c = s.GetAt(0);
s.Delete(0, 1);
if (is_uvowel(c)) {
c = c.ToLower();
code += shift_pattern(c);
res += c;
pos = i;
} else
if (c == d && code.GetLength() > 0) {
res += c;
code += c;
CFSWString t_code = code;
t_code += shift_pattern(s.GetAt(0));
x = pattern_lookup(t_code); //orig üle silbipiiri
if (x > -1) {
x += pos;
if (x > res.GetLength()) { // kui kargab järgmisse silpi
x = x - res.GetLength();
s.Insert(x, colon);
} else
res.Insert(x, colon);
i++;
} else {
t_code = simplify_pattern(t_code);
x = pattern_lookup(t_code); //liht üle silbipiiri
if (x > -1) {
x += pos;
if (x > res.GetLength()) { // kui kargab järgmisse silpi
x = x - res.GetLength();
s.Insert(x, colon);
} else
res.Insert(x, colon);
i++;
} else {
x = pattern_lookup(code); //orig
if (x > -1) {
x += pos;
res.Insert(x, colon);
i++;
} else {
code = simplify_pattern(code);
x = pattern_lookup(code); //liht
if (x > -1) {
x += pos;
res.Insert(x, colon);
i++;
}
}
}
}
code = empty_str;
} else {
res += c;
if (code.GetLength() > 0) {
code += shift_pattern(c);
}
}
i++;
} //while
// sõna lõpus
if (code.GetLength() > 0) {
code += L"#";
//imelik koht ainult "lonksu" pärast
if ((code.Left(3) == L"VLQ") && ((code.GetAt(3) == L's') || (code.GetAt(3) == L'h') || (code.GetAt(3) == L'v') || (code.GetAt(3) == L'j'))) {
code = L"VLQC#";
}
INTPTR x = pattern_lookup(code);
if (x > -1) {
x += pos;
res.Insert(x, colon);
} else {
code = simplify_pattern(code);
x = pattern_lookup(code);
if (x > -1) {
x += pos;
res.Insert(x, colon);
}
}
code = empty_str;
}
return res;
}