#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char num[11][10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
int search(char ch[])
{
int i;
for(i=0;i<10;i++)
{
if(strcmp(ch,num[i])==0)
break;
}
return i;
}
int main()
{
int a,b;
char coun[11];
while(1)
{
a=0;
while(scanf("%s",coun)&&strcmp(coun,"+")!=0)
a=a*10+search(coun);
b=0;
while(scanf("%s",coun)&&strcmp(coun,"=")!=0)
b=b*10+search(coun);
if(a==0&&b==0) return 0;
cout<<a+b<<endl;
}
return 0;
#include<cstring>
#include<cstdio>
using namespace std;
char num[11][10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
int search(char ch[])
{
int i;
for(i=0;i<10;i++)
{
if(strcmp(ch,num[i])==0)
break;
}
return i;
}
int main()
{
int a,b;
char coun[11];
while(1)
{
a=0;
while(scanf("%s",coun)&&strcmp(coun,"+")!=0)
a=a*10+search(coun);
b=0;
while(scanf("%s",coun)&&strcmp(coun,"=")!=0)
b=b*10+search(coun);
if(a==0&&b==0) return 0;
cout<<a+b<<endl;
}
return 0;
}
一开始我使用如图方式,编译不通过,是因为strcmp()只能比较数组,而不能比较string类类型。
附string类和strcmp的比较操作: