C++ 面試題翻譯電話號(hào)碼實(shí)例代碼
C++ 面試題翻譯電話號(hào)碼實(shí)例代碼
例如:
輸入:OneTwoThree
輸出:123
輸入:OneTwoDoubleTwo
輸出:1222
輸入:1Two2
輸出:ERROR
輸入:DoubleDoubleTwo
輸出:ERROR
有空格,非法字符,兩個(gè)Double相連,Double位于最后一個(gè)單詞 都錯(cuò)誤。
#include <iostream>
#include <string>
using namespace std;
void process(string str)
{
//各字符串的下標(biāo)即為其對(duì)應(yīng)的阿拉伯?dāng)?shù)字
char *ch[]={"zero","one","two","three","four","five","six","seven","eight","nine","double"};
char *out[100];//存儲(chǔ)結(jié)果集
int f=0;
int i,j,k;
string substr;
int len=str.length();
int flag=0;//判斷double出現(xiàn)
int flag2=0;//判斷內(nèi)循環(huán)有無(wú)break
for(i=0;i<len;i++)
{
if(flag2)
break;
else if(str[i]<97 || str[i]>122)//非字母字符
{
out[f++]="error";
break;
}
else{
//可以看出拼音最短為3個(gè)字符,最長(zhǎng)為6個(gè)字符
for(j=i+2;j<len&&(j-i)<6;j++)
{
substr=str.substr(i,j-i+1);
if(!substr.compare(ch[10]))//出現(xiàn)double
{
if(i==len-6)//最后一個(gè)double
{
out[f++]="error";
flag2=1;
break;
}else if(flag){//連續(xù)兩個(gè)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;//看有無(wú)error,默認(rèn)沒(méi)有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);
}

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
C++實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
C++中靜態(tài)庫(kù)與動(dòng)態(tài)庫(kù)的使用示例
在C/C++中使用庫(kù)的技術(shù),庫(kù)主要分為兩種類(lèi)型:靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù),本文主要介紹了C++中靜態(tài)庫(kù)與動(dòng)態(tài)庫(kù)的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之簡(jiǎn)易計(jì)算器
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之簡(jiǎn)易計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
C++實(shí)現(xiàn)簡(jiǎn)單BP神經(jīng)網(wǎng)絡(luò)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單BP神經(jīng)網(wǎng)絡(luò),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
c++ qsort 與sort 對(duì)結(jié)構(gòu)體排序?qū)嵗a
這篇文章主要介紹了c++ qsort 與sort 對(duì)結(jié)構(gòu)體排序?qū)嵗a,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下2020-11-11
C語(yǔ)言練習(xí)題:求1到10的階乘之和簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇C語(yǔ)言練習(xí)題:求1到10的階乘之和簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05

