本文整理汇总了C++中CFSWString类的典型用法代码示例。如果您正苦于以下问题:C++ CFSWString类的具体用法?C++ CFSWString怎么用?C++ CFSWString使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CFSWString类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MultiReplace
void CSuggestor::MultiReplace(const CFSWString &szWord, INTPTR ipStartPos)
{
if (ipStartPos>0) CheckAndAdd(szWord);
INTPTR ipLength=szWord.GetLength();
for (; ipStartPos<ipLength; ipStartPos++){
for (INTPTR ip=0; ip<(INTPTR)(sizeof(ChangeStringsMultiple)/sizeof(__CChangeStrings)); ip++){
if (szWord.ContainsAt(ipStartPos, ChangeStringsMultiple[ip].m_lpszFrom)){
MultiReplace(szWord.Left(ipStartPos)+ChangeStringsMultiple[ip].m_lpszTo+szWord.Mid(ipStartPos+FSStrLen(ChangeStringsMultiple[ip].m_lpszFrom)), ipStartPos+FSStrLen(ChangeStringsMultiple[ip].m_lpszTo));
}
}
}
}
示例2: 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;
}
示例3: CheckAndAdd
int CSuggestor::CheckAndAdd(const CFSWString &szWord)
{
if (m_fTimeOut>0 && (CFSTime::Now()-m_TimeStart).GetSeconds()>=m_fTimeOut) return -1;
if (szWord.IsEmpty()) return -1;
CFSWString szTemp;
long lLevel=100;
if (SpellWord(szWord, szTemp, &lLevel)==SPL_NOERROR && !szTemp.IsEmpty()){
szTemp=m_Cap.GetCap(szTemp);
CFSWString szTemp2; long lLevel2;
if (SpellWord(szTemp, szTemp2, &lLevel2)==SPL_NOERROR){
SetLevel(GetLevelGroup(lLevel));
m_Items.AddItem(CSuggestorItem(szTemp, lLevel)); return 0;
}
}
return -1;
}
示例4: is_word
bool is_word(CFSWString s) {
if ((has_vowel(s) == true) &&
(s.GetLength() == make_char_string(s).GetLength()) &&
(s.GetLength() > 1))
return true;
return false;
}
示例5: PTWSplitBuffer
void PTWSplitBuffer(const CFSWString &szBuffer, CPTWordArray &Words)
{
Words.Cleanup();
INTPTR ipStartPos=0;
INTPTR ipPos;
for (ipPos=0; ipPos<szBuffer.GetLength(); ipPos++) {
if (FSIsSpace(szBuffer[ipPos])) {
if (ipPos>ipStartPos) {
Words.AddItem(CPTWord(szBuffer.Mid(ipStartPos, ipPos-ipStartPos), ipStartPos));
}
ipStartPos=ipPos+1;
}
}
if (ipPos>ipStartPos) {
Words.AddItem(CPTWord(szBuffer.Mid(ipStartPos, ipPos-ipStartPos), ipStartPos));
}
}
示例6: palat_vru
CFSWString palat_vru (CFSWString s) {
CFSWString res;
bool m = false;
if (s == L"är'") res = L"ärq";
else
if (s == L"ar'") res = L"arq";
else
if (s == L"jäl'") res = L"jälq";
else
if (s == L"jal'") res = L"jalq";
else
if (s == L"kül'") res = L"külq";
else
if (s == L"pan'") res = L"panq";
else
if (s == L"tul'") res = L"tulq";
else
if (s == L"ol'") res = L"olq";
else
for (INTPTR i = s.GetLength()-1; i >= 0; i--) {
CFSWString c = s.GetAt(i);
if (c == L"'") {
m = true;
} else
if (must(c)) {
res = c + res;
m = true;
}
else
if (m) {
if (can_palat_vr(c)) {
c = c.ToUpper();
res = c + res;
} else {
res = c + res;
m = false;
}
} else {
res = c + res;
}
}
return res;
}
示例7: shift_pattern
CFSWString shift_pattern(CFSWString s) {
if (s == L'j') return L'j';
else
if (s == L'h') return L'h';
else
if (s == L'v') return L'v';
else
if (s.FindOneOf(L"sS") > -1) return L's';
else
if (s.FindOneOf(L"lmnrLN") > -1) return L'L';
else
if (s.FindOneOf(L"kptfšT") > -1) return L'Q';
else
if (is_vowel(s)) return L'V';
else
if (is_consonant(s)) return L'C';
return s;
}
示例8: DealWithText
CFSWString DealWithText(CFSWString text) {
/* Proovin kogu sõnniku minema loopida */
CFSWString res;
text.Trim();
text.Replace(L"\n\n", L"\n", 1);
for (INTPTR i = 0; i < text.GetLength(); i++) {
CFSWString c = text.GetAt(i);
CFSWString pc = res.GetAt(res.GetLength() - 1);
CFSWString nc = text.GetAt(i + 1);
if (is_char(c)) res += c;
else
if (is_digit(c)) res += c;
else
if (is_hyphen(c) && is_char(pc) && is_char(nc)) res += sp;
else
if (is_symbol(c)) res += c;
else
if (is_colon(c) && !is_colon(pc)) res += c;
else
if (is_bbracket(c) && !is_bbracket(pc)) res += c;
else
if (is_ebracket(c) && is_ending(nc)) res += L"";
else
if (is_ebracket(c) && !is_ebracket(pc)) res += c;
else
if (is_comma(c) && !is_comma(pc)) res += c;
else
if (is_fchar(c)) res += replace_fchar(c);
else
if (is_space(c) && !is_whitespace(pc)) res += c;
else
if (is_break(c) && !is_break(pc)) {
res += c;
} //kahtlane
else
if (is_tab(c) && !is_whitespace(pc)) res += c;
else
if (is_ending(c) && !is_ending(pc) && !is_whitespace(pc)) res += c;
}
res.Trim();
return res;
}
示例9: print_u
void print_u(utterance_struct u) {
for (INTPTR i = 0; i < u.phr_vector.GetSize(); i++)
for (INTPTR i1 = 0; i1 < u.phr_vector[i].word_vector.GetSize(); i1++) {
fprintf(stderr, "%s\n\n", ccstr(u.phr_vector[i].word_vector[i1].mi.m_szRoot));
for (INTPTR i2 = 0; i2 < u.phr_vector[i].word_vector[i1].syl_vector.GetSize(); i2++) {
fprintf(stderr, "\t%s\n", ccstr(u.phr_vector[i].word_vector[i1].syl_vector[i2].syl));
for (INTPTR i3 = 0; i3 < u.phr_vector[i].word_vector[i1].syl_vector[i2].phone_vector.GetSize(); i3++) {
CFSWString w = u.phr_vector[i].word_vector[i1].syl_vector[i2].phone_vector[i3].phone;
while (w.GetLength() < 6) w += sp;
fprintf(stderr, "\t\t%s", ccstr(w));
wprintf(L"%i %i %i %i\t", u.phra_c, u.word_c, u.syl_c, u.phone_c);
wprintf(L"%i %i %i [%i]\t", u.phr_vector[i].word_c, u.phr_vector[i].syl_c, u.phr_vector[i].phone_c, u.phr_vector[i].utt_p);
wprintf(L"%i %i [%i %i]\t",
u.phr_vector[i].word_vector[i1].syl_c,
u.phr_vector[i].word_vector[i1].phone_c,
u.phr_vector[i].word_vector[i1].utt_p,
u.phr_vector[i].word_vector[i1].phr_p
);
wprintf(L"%i [%i %i %i]\t",
u.phr_vector[i].word_vector[i1].syl_vector[i2].phone_c,
u.phr_vector[i].word_vector[i1].syl_vector[i2].utt_p,
u.phr_vector[i].word_vector[i1].syl_vector[i2].phr_p,
u.phr_vector[i].word_vector[i1].syl_vector[i2].word_p
);
phone_struct p = u.phr_vector[i].word_vector[i1].syl_vector[i2].phone_vector[i3];
wprintf(L"[%i %i %i %i]\t", p.utt_p, p.phr_p, p.word_p, p.syl_p);
wprintf(L"{ %i }", u.phr_vector[i].word_vector[i1].syl_vector[i2].stress);
wprintf(L"\n");
}
}
}
wprintf(L"\n");
}
示例10: do_syls
void do_syls(word_struct &w) {
CFSArray<syl_struct> sv, sv_temp;
syl_struct ss;
CFSArray<CFSWString> temp_arr, c_words;
ss.phone_c = 0, ss.word_p = 0, ss.phr_p = 0, ss.utt_p = 0;
w.syl_c = 0;
INTPTR word_p = 1;
explode(w.mi.m_szRoot, L"_", c_words);
for (INTPTR cw = 0; cw < c_words.GetSize(); cw++) {
CFSWString s = word_to_syls(c_words[cw]);
//MINGI MUSTRITE ERROR paindliKkus
s.Replace(L"K", L"k", 1);
s.Replace(L"R", L"r", 1);
s.Replace(L"V", L"v", 1);
explode(s, d, temp_arr);
ss.stress = 0;
sv_temp.Cleanup();
for (INTPTR i = 0; i < temp_arr.GetSize(); i++) {
ss.syl = temp_arr[i];
ss.stress = 0; // rõhu algväärtus
ss.word_p = word_p++;
sv_temp.AddItem(ss);
}
add_stress2(sv_temp, cw);
for (INTPTR i = 0; i < sv_temp.GetSize(); i++)
sv.AddItem(sv_temp[i]);
}
w.syl_vector = sv;
}
示例11: do_utterances
CFSArray<CFSWString> do_utterances(CFSWString s) {
CFSWString res = empty_str;
CFSArray<CFSWString> res_array;
if (s.GetLength() == 1)
res_array.AddItem(s);
else
for (INTPTR i = 0; i < s.GetLength(); i++) {
CFSWString c = s.GetAt(i);
CFSWString pc = res.GetAt(res.GetLength() - 1);
CFSWString nc = s.GetAt(i + 1);
CFSWString nnc = s.GetAt(i + 2);
if (is_ending(c) && is_whitespace(nc) && is_upper(nnc)) {
res.Trim();
res_array.AddItem(res);
res = empty_str;
} else
if (is_tab(c)) {
if (res.GetLength() > 0) {
res.Trim();
res_array.AddItem(res);
res = empty_str;
}
} else
res += c;
}
res.Trim();
if (res.GetLength() > 0) {
while (is_ending(res.GetAt(res.GetLength() - 1))) {
res.Delete(res.GetLength() - 1, 1);
}
res_array.AddItem(res);
}
for (INTPTR i=0; i < res_array.GetSize(); i++) {
if (is_ending(res_array[i].GetAt(res_array[i].GetLength()-1)))
res_array[i].Delete( res_array[i].GetLength()-1, 1 );
}
return res_array;
}
示例12: do_phrases
INTPTR do_phrases(utterance_struct &u) {
phrase_struct p;
CFSWString res;
p.phone_c = 0;
p.syl_c = 0;
p.word_c = 0;
for (INTPTR i = 0; i < u.s.GetLength(); i++) {
CFSWString c = u.s.GetAt(i);
CFSWString pc = res.GetAt(res.GetLength() - 1);
CFSWString nc = u.s.GetAt(i + 1);
CFSWString nnc = u.s.GetAt(i + 2);
if ((is_comma(c) || is_colon(c) || is_semicolon(c)) && is_space(nc) && is_char(nnc)) {
res.Trim();
if (res.GetLength() > 0) {
push_ph_res(u, p, res);
}
} else
if (is_bbracket(c)) {
res.Trim();
if (res.GetLength() > 0) {
push_ph_res(u, p, res);
}
p.s = L"sulgudes";
u.phr_vector.AddItem(p);
} else
if (is_ebracket(c)) {
res.Trim();
if (res.GetLength() > 0) {
push_ph_res(u, p, res);
}
} else
if (is_space(c)) { // komatud sidesõnad
CFSWString tempm = u.s.Mid(i + 1, -1);
res.Trim();
if (is_conju(tempm.Left(tempm.Find(sp))) && res.GetLength() > 0) {
push_ph_res(u, p, res);
} else
res += c;
} else
if (is_bhyphen(c)) {
res.Trim();
if (res.GetLength() > 0 && ((is_char(pc) && is_space(nc)) || (is_space(nc) && is_char(nnc)) || (is_space(pc) && is_char(nc)))) {
push_ph_res(u, p, res);
} else
res += c;
} else
res += c;
}
if (res.GetLength() > 0) {
// if (is_ending(res.GetAt(res.GetLength() - 1))) {
// res.Delete(res.GetLength() - 1, 1);
// }
push_ph_res(u, p, res);
}
return u.phr_vector.GetSize();
}
示例13: must
bool must (CFSWString c) {
if (c.FindOneOf(L"eijäöü") > -1) return true;
return false;
}
示例14: push_ph_res
void push_ph_res(utterance_struct &u, phrase_struct &p, CFSWString &res) {
res.Trim();
p.s = res;
u.phr_vector.AddItem(p);
res = empty_str;
} //do_phrases osa
示例15: can_palat_vr
bool can_palat_vr(CFSWString c) {
if (c.FindOneOf(L"bdfghklmnprstv") > -1) return true;
return false;
}