本文整理汇总了C++中CDictionary::GetTranslate方法的典型用法代码示例。如果您正苦于以下问题:C++ CDictionary::GetTranslate方法的具体用法?C++ CDictionary::GetTranslate怎么用?C++ CDictionary::GetTranslate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CDictionary
的用法示例。
在下文中一共展示了CDictionary::GetTranslate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Translate
/*
* логика внутри цикла метода может показаться запутанной и тяжеловатой
* для сопровождения. Собственно, это было сделано в пользу малого размера словаря
* при желании его можно сделать более пригодным для сопровождения
*/
string Translate(int num,int power)
{
string result;
int temp;
vector<int> digits;
char buff[100];
digits=Num2Digits(num,power);
vector<int>::iterator it=digits.begin();
vector<int>::iterator end=digits.end();
int dig=digits.size()-1;
while(it!=end)
{
switch(dig%3)
{
case 0: {
sprintf(buff,"d%d%d", dig ,*it );
result+=D.GetTranslate(buff) + " ";
break;
}
case 1: {
if(*it)
{
if(*it==1)
{
temp=10*(*it);
++it;
--dig;
temp+=(*it);
sprintf(buff,"%d", temp );
result+=D.GetTranslate(buff) + " ";
sprintf(buff,"d%d0", dig );
result+=D.GetTranslate(buff) + " ";
}
else
{
sprintf(buff,"%d", *it*10 );
result+=D.GetTranslate(buff) + " ";
}
}
break;
}
case 2: {
if(*it)
{
sprintf(buff,"%d", *it*100 );
result+=D.GetTranslate(buff) + " ";
}
break;
}
}
--dig;
++it;
}
return result;
}