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

<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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-26 02:51:43

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

数字与字符串之间的转换

char*itoa(intvalue,char*string,intradix); int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等 头文件: <stdlib.h> atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转换成长整型数) strtod(将字符串转换成浮点数) strtol(将字符串转换成长整型数) strtoul(将字符串转换成无符号长整型数) toa

C++中数字与字符串之间的转换,别人的,

C++中数字与字符串之间的转换 1.字符串数字之间的转换 (1)string --> char *   string str("OK");   char * p = str.c_str(); (2)char * -->string   char *p = "OK";   string str(p); (3)char * -->CString    char *p ="OK";   CString m_Str(p);   //或者

C++中数字与字符串之间的转换

1.字符串数字之间的转换 (1)string --> char *   string str("OK");   char * p = str.c_str(); (2)char * -->string   char *p = "OK";   string str(p); (3)char * -->CString    char *p ="OK";   CString m_Str(p);   //或者   CString m_Str

C语言博客(6)编程基础之进制之间的转换

在本人的C语言博客的内容中,前面两篇随笔对二进制.八进制和十六进制进行了说明,接下来讲一下不同进制之间的数字是如何转换的,这在编程中经常会用到,尤其是C语言. 其他进制向十进制转换 在C语言学习中,二进制.八进制和十六进制向十进制转换都是非常容易的,就是"按权相加". 所谓"权",也即"位权".例如,十进制第1位的位权为100=1,第2位的位权为101=10,第3位的位权为102=100:而二进制第1位的位权为20=1,第2位的位权为21=2,第

js 中数字与字符串之间的转换

数字转换为字符串 var num  = 123: 1.num.toString 2."" + num 3.String(num) 将数字转化为格式化后的字符串 num.toFixed(2)   小数点后显示两位 toExponential() 科学计数法 toPrecision() 精确位数 原文地址:https://www.cnblogs.com/anqiang1995/p/10034558.html

如何在String和Byte[]对象之间进行转换

分析问题 字符串和字节数组之间的转换,事实上代表了现实世界信息和数字世界信息之间的转换,要理解其中的机制,需要先了解一下几个概念. 1.比特. 比特(bit)是指一个位,它可以说是计算机内物理保存的最近本单元.现在的计算机体系采用二进制逻辑,即一个基本单元可以保存两种数值:0和1.这是因为0.1机制可以用多种物理系统来表示,例如高电平和低电平.二极管的导通和关闭.磁场的正极和负极等.总之,一个比特就是一个二进制位. 2.字节. 一个字节(byte),在C#中是由8个比特来构成的.它的值可以有一个

C++字符串类型和数字之间的转换

转载:http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html 1.字符串数字之间的转换 字符串---字符数组(1)string --> char *   string str("OK");   char * p = str.c_str(); 字符数组---字符串(2)char * -->string   char *p = "OK";   string str(p); 字符数组--

Swift数字类型之间的转换

Swift数字类型之间的转换Swift是一种安全的语言,对于类型的检查非常严格,不同类型之间不能随便转换.一.整型之间的转换在C和Objective-C等其他语言中,整型之间有两种转换方法:从小范围数到大范围数转换是自动的:从大范围数到小范围数需要强制类型转换,有可能造成数据精度的丢失.而在Swift中这两种方法是行不通的,我们需要通过一些函数进行显式地转换,代码如下: let historyScore:UInt8 = 90 let englishScore:UInt16 = 130 let t

DB2中字符、数字和日期类型之间的转换

DB2中字符.数字和日期类型之间的转换 一般我们在使用DB2或Oracle的过程中,经常会在数字<->字符<->日期三种类 型之间做转换,那么在DB2和Oracle中,他们分别是如何实现的呢?在Oracle这几个类型之间的转换是十分方便的,通过 to_char|to_date|to_number函数即可完成类型转换.本小节主要介绍DB2中的一些知识,从Oracle转过来的DBA或开发人 员,可以对比着学习. 数字型到字符型的转换 DB2中的col_a字段 字段类型 到字符类型的转换