#include<iostream>
#include<cstring>
using namespace std;
/**
*将单词转化为数字返回
**/
int get_num(char a[]) {
int i=0;
while (a[i] != 0) {
if (a[i] == 'o' || a[i] == 'O') {
return 1;
} else if (a[i] == 'e' || a[i] == 'E') {
return 8;
} else if (a[i] == 'n' || a[i] == 'N') {
return 9;
} else if (a[i] == 'z' || a[i] == 'Z') {
return 0;
} else if (a[i] == 's' || a[i] == 'S') {
if (a[i+1] == 'i' || a[i+1] == 'I') {
return 6;
} else if (a[i+1] == 'e' || a[i+1] == 'E') {
return 7;
} else {
return -1;
}
} else if (a[i] == 't' || a[i] == 'T') {
if (a[i+1] == 'w' || a[i+1] == 'W') {
return 2;
} else if (a[i+1] == 'h' || a[i+1] == 'H') {
return 3;
} else {
return -1;
}
} else if (a[i] == 'f' || a[i] == 'F') {
if (a[i+1] == 'o' || a[i+1] == 'O') {
return 4;
} else if (a[i+1] == 'i' || a[i+1] == 'I') {
return 5;
} else {
return -1;
}
} else {
return -1;
}
}
}
int main() {
char input[100];
while (gets(input)) {
int len = strlen(input);
int a = 0, b = 0;
char s[10];
int k = 0;
bool is_a = true; //是否是前面部分
for (int i=0; i<len; i++) {
if (input[i] >= 'a' && input[i] <= 'z' || input[i] >= 'A' && input[i] <= 'Z') {
s[k++] = input[i];
} else if (input[i] == ' ') { //碰见空格就要计算一次值
s[k] = 0;
k = 0;
if (is_a) {
int tmp = get_num(s);
if (tmp == -1) {
return 0;
} else {
a = a*10 + get_num(s);
}
} else {
int tmp = get_num(s);
if (tmp == -1) {
return 0;
} else {
b = b*10 + get_num(s);
}
}
} else if (input[i] == '+') {
i++; //加号后面的空格要跳过
is_a = false; //跳到计算B部分
}
}
//cout<<a<<" "<<b<<endl;
if (a == 0 && b == 0) {
break;
}
cout<<a+b<<endl;
}
return 0;
}
废话不多说了,简单直接上代码,基础题!