编程之类 数字号码《-》单词之间的转换

<pre name="code" class="cpp">/**
数字转换成单词,
1,0==》空格

2==》a或b或c

7==》p或q或r或s

*/


 
#include<iostream>
#include<vector>
using namespace std;
typedef struct NUM_WORD_
{
	int count;
	char word[4];
}NUM_WORD;
NUM_WORD GetWord(int num)
{
	NUM_WORD m_word;
	m_word.count=0;
    int i=0;
	switch(num)
	{
	case 0:
	case 1:
		m_word.count=1;
		m_word.word[0]=' ';
		break;
	case 2:
		m_word.count=3;
		for(i=0;i<3;i++)
			m_word.word[i]='a'+i;
		break;
	case 3:
		m_word.count=3;
		for(i=0;i<3;i++)
			m_word.word[i]='d'+i;
		break;
	case 4:
		m_word.count=3;
		for(i=0;i<3;i++)
			m_word.word[i]='g'+i;
		break;
	case 5:
		m_word.count=3;
		for(i=0;i<3;i++)
			m_word.word[i]='j'+i;
		break;
	case 6:
		m_word.count=3;
		for(i=0;i<3;i++)
			m_word.word[i]='m'+i;
		break;
	case 7:
		m_word.count=4;
		for(i=0;i<4;i++)
			m_word.word[i]='p'+i;
		break;
	case 8:
		m_word.count=3;
		for(i=0;i<3;i++)
			m_word.word[i]='t'+i;
		break;
	case 9:
		m_word.count=4;
		for(i=0;i<4;i++)
			m_word.word[i]='w'+i;
		break;
	}
	return m_word;
}
void GetValue(char*numStr,int pos,char* wordStr)
{
	
	if(pos>=strlen(numStr))
	{
		wordStr[pos]='\0';
		cout<<wordStr<<endl;
		return;
	}else{
        	NUM_WORD m1;
	        int num=(int)(numStr[pos]-'0');
 	        m1=GetWord(num);
	        int i=0;
	        for(i=0;i<m1.count;i++)
			{
		       wordStr[pos]=m1.word[i];
		       GetValue(numStr,pos+1,wordStr);
			}
	}
}
void Output(char*numStr)
{
	int pos=0;
	char*wordStr=new char[strlen(numStr)+1];
    
	GetValue(numStr,pos,wordStr);
   
	if(wordStr!=NULL)delete []wordStr;
}


int main()
{
	char*numStr="27";
    Output(numStr);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值