天天看點

HDU-1228-A+B(字元串處理)

hdu 1228 A+B

Problem Description

讀入兩個小于100的正整數A和B,計算A+B.

需要注意的是:A和B的每一位數字由對應的英文單詞給出.

Input

測試輸入包含若幹測試用例,每個測試用例占一行,格式為”A + B =”,相鄰兩字元串有一個空格間隔.當A和B同時為0時輸入結束,相應的結果不要輸出.

Output

對每個測試用例輸出1行,即A+B的值.

Sample Input

one + two =

three four + five six =

zero seven + eight nine =

zero + zero =

Sample Output

3

90

96

思路:關鍵就是字元串的處理,怎麼把每個數給分離出來,用scanf一個一個的讀入,用change()函數給轉換成具體的數字

#include<cstdio>
#include<cstring>

char a[][] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};

int change(char s[]){
    for(int i = ; i < ; i++)
        if(!strcmp(a[i], s))
            return i;
}

int main()
{
    char str[], num[];
    while(){
        int a = , b = ;
        while(scanf("%s", str) && strcmp(str, "+")){
            a = a*+change(str);
        }
        while(scanf("%s", str) && strcmp(str, "=")){
            b = b*+change(str);
        }
        if(!(a+b))  break;
        printf("%d\n", a+b);
    }
    return ;
}
           

繼續閱讀