首页 > 其他 > 详细

PAT1004

时间:2019-08-27 11:01:56      阅读:147      评论:0      收藏:0      [点我收藏+]
#include<iostream>
#include<string>
#include<sstream>
using namespace std;

int char_to_digit(char c){
    if(c==0)
        return 0;
    else if(c==1)
        return 1;
    else if(c==2)
        return 2;
    else if(c==3)
        return 3;
    else if(c==4)
        return 4;
    else if(c==5)
        return 5;
    else if(c==6)
        return 6;
    else if(c==7)
        return 7;
    else if(c==8)
        return 8;
    else if(c==9)
        return 9;
}

string char_to_english(char c){
    if(c==0)
        return "zero";
    else if(c==1)
        return "one";
    else if(c==2)
        return "two";
    else if(c==3)
        return "three";
    else if(c==4)
        return "four";
    else if(c==5)
        return "five";
    else if(c==6)
        return "six";
    else if(c==7)
        return "seven";
    else if(c==8)
        return "eight";
    else if(c==9)
        return "nine";
}

int main(){
    string input;
    cin>>input;
    int sum=0;
    for(int i=0;i!=input.size();++i){
        sum+=char_to_digit(input[i]);
    }
    stringstream ss;
    ss<<sum;
    string output;
    ss>>output;
    for(int i=0;i!=output.size();++i){
        cout<<char_to_english(output[i]);
        if((i+1)==output.size())
            break;
        cout<<" ";
    }
    
    return 0;
}

 

本题只是简单涉及一点点字符串和数字之间的转化,我是用stringstream来处理这种转变,个人感觉比较方便:

当使用stringstream时候要注意的是头文件是<sstream>不是<stringstream>,其次是如果进行多次转化,每一次转化结束后就要ss.clear()一次。

其他的感觉就没有什么问题。

 

PAT1004

原文:https://www.cnblogs.com/chuan-chuan/p/11416247.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!