首页 > 代码库 > PAT---1005. Spell It Right (20)
PAT---1005. Spell It Right (20)
#include<iostream>#include<stack>#include<string.h>char *g_WordTable[10]= {"zero", "one", "two", "three", "four", "five","six", "seven", "eight", "nine"};
int main(){ //存放用户输入的数据 char input[1000]; //当用户输入的数据没有停止的时候 while(scanf("%s", &input) != EOF) { int sum = 0; //得到用户输入数据的长度,用到了string.h int len = strlen(input); //把每个字符转化为ASCII码,数字字符的ASCII码和数字本身是相等的,求和 for(int i = 0; i < len; ++i) sum += (input[i]-‘0‘); //定义一个栈 std::stack<int> s; //拆位,个位先放入栈,然后是十百千位 do { int temp = sum%10; s.push(temp); sum /= 10; }while(sum != 0); //输出,empty判断堆栈是否为空 while(!s.empty()) { //得到堆栈栈顶数据 int t = s.top(); //size返回当前堆栈长度(即内部数据个数) //如果栈的大小事大于1的 if((int)s.size() > 1) printf("%s ", g_WordTable[t]); else printf("%s\n", g_WordTable[t]); //pop弹出栈顶的元素 s.pop(); } } return 0;}
总结:1.掌握指针数组定义字符串和二维数组定义字符串,指针数组更优
2.掌握拆项的方法
3.掌握栈的方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。