先用map建立映射关系,然后每次读进来一个串(cin读到空格就停了),对应出相应的数字,就把a和b的值计算出来了。具体的就来看我的代码吧
#include<iostream>
#include<string>
#include<map>
using namespace std;
map<string,int> m;
int main()
{
m["zero"] = 0;
m["one"] = 1;
m["two"] = 2;
m["three"] = 3;
m["four"] = 4;
m["five"] = 5;
m["six"] = 6;
m["seven"] = 7;
m["eight"] = 8;
m["nine"] = 9;
m["ten"] = 10;
string in;
while(true)
{
int a = 0,b = 0;
while(cin >> in)
{
if(in == "+")
break;
a = a * 10 + m[in];
}
while(cin >> in)
{
if(in == "=")
break;
b = b * 10 + m[in];
}
if(a == 0 && b == 0)
break;
cout<< a+b <<endl;
}
return 0;
}