C++ 面试题翻译电话号码实例代码

C++ 面试题翻译电话号码实例代码,第1张

概述C++面试题翻译电话号码实例代码例如:输入:OneTwoThree输出:123输入:OneTwoDoubleTwo

C++ 面试题翻译电话号码实例代码

例如:

输入:OneTwoThree
输出:123

输入:OneTwodoubleTwo
输出:1222

输入:1Two2
输出:ERROR

输入:DoubleDoubleTwo
输出:ERROR

有空格,非法字符,两个Double相连,Double位于最后一个单词 都错误。

#include <iostream>  #include <string>     using namespace std;      voID process(string str)   {     //各字符串的下标即为其对应的阿拉伯数字     char *ch[]={"zero","one","two","three","four","five","six","seven","eight","nine","double"};   char *out[100];//存储结果集    int f=0;   int i,j,k;       string substr;     int len=str.length();    int flag=0;//判断double出现   int flag2=0;//判断内循环有无break    for(i=0;i<len;i++)     {      if(flag2)       break;     else if(str[i]<97 || str[i]>122)//非字母字符     {       out[f++]="error";       break;     }     else{       //可以看出拼音最短为3个字符,最长为6个字符         for(j=i+2;j<len&&(j-i)<6;j++)         {           substr=str.substr(i,j-i+1);           if(!substr.compare(ch[10]))//出现double         {           if(i==len-6)//最后一个double           {             out[f++]="error";             flag2=1;             break;           }else if(flag){//连续两个double             out[f++]="error";             flag2=1;             break;           }else             flag=1;         }         else{           for(k=0;k<10;k++)            {             if(!substr.compare(ch[k]))               {                 if(flag){                 out[f++]=ch[k];                 out[f++]=ch[k];                 flag=0;                 break;                              }               else{                 out[f++]=ch[k];                   break;               }             }            }         }       }      }   }       int flag3=0;//看有无error,默认没有error   for(int r=0;r<f;r++){     if(out[r]=="error")//有error       flag3=1;   }    if(!flag3)     for(r=0;r<f;r++)       for(k=0;k<10;k++)        {         if(out[r]==ch[k])             printf("%d",k);       }   else     printf("error");    printf("\n");  }      voID main()  {    string str;     while(getline(cin,str))      process(str);  }  

@H_502_27@

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

总结

以上是内存溢出为你收集整理的C++ 面试题翻译电话号码实例代码全部内容,希望文章能够帮你解决C++ 面试题翻译电话号码实例代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1245192.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存