您的位置:首页 > 其它

由一个小题看字符串转换

2012-04-25 21:19 113 查看
写代码使得输入:45

输出:forty five

如下:该题主要用到字符串转换的一些知识。

#include<iostream>

#include<string>

using namespace std;

// Converts a number from 10 to 99 into text.

string GetDigits(string Digits)

{

string Result;

Result = "" ;

int test = atoi(Digits.c_str());

switch(test)

{

case 1: Result = "One";break;

case 2: Result = "Two";break;

case 3:
Result = "Three";break;

case 4: Result = "Four"; break;

case 5: Result = "Five"; break;

case 6: Result = "Six" ; break;

case 7: Result = "Seven"; break;

case 8: Result = "Eight"; break;

case 9: Result = "Nine"; break;

}

return Result;

}

string Right(string number)

{

string Result;

Result = "";

int i = number.length();

Result = number[i-1];

return Result;

}

string GetTens(string TensText)

{

string Result;

Result = "" ; //Null out the temporary function value.

int test = atoi(TensText.c_str());

if( TensText[0] == '1' ) //If value between 10-19...

{

switch(test)

{

case 10: Result = "Ten";break;

case 11: Result = "Eleven";break;

case 12: Result = "Twelve";break;

case 13: Result = "Thirteen";break;

case 14: Result = "Fourteen";break;

case 15: Result = "Fifteen";break;

case 16: Result = "Sixteen";break;

case 17: Result = "Seventeen";break;

case 18: Result = "Eighteen";break;

case 19: Result = "Nineteen";break;

default: break;

}

}

else

{

// If value between 20-99...

char first = TensText[0];

test = int(first-'0');

//也可是 test = atoi(&first);

switch(test)

{

case 2: Result = "Twenty ";break;

case 3: Result = "Thirty ";break;

case 4: Result = "Forty ";break;

case 5: Result = "Fifty ";break;

case 6: Result = "Sixty ";break;

case 7: Result = "Seventy ";break;

case 8: Result = "Eighty ";break;

case 9: Result = "Ninety ";break;

default:break;

}

}

string digits = GetDigits(Right(TensText));

Result = Result + digits;

return Result;

}

//对于位数的判断可以使用工厂模式

int main()

{

string t;

cin>>t;

if(t.length()>1)

cout<<GetTens(t).c_str();

else

cout<<GetDigits(t).c_str();

return 0;

}

使用到的函数

atoi : 从char*转到int

c_str: string的方法从string转到char *;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: