C语言(8)字母与数字转换

描述

小明最近接到了一个棘手的任务,他们公司有一个电话簿.但是这是一个奇怪的电话簿,因为它不是用数字记录电话号码,而是用数字键上所对应的字母来记录电话号码(2-abc,3-def,4-ghi,5-jkl,6-mno,7-pqrs,8-tuv,9-wxyz),电话号码只有11位。现在你的任务就是帮小明写一个程序来把这些字母的电话号码转化成数字的电话号码。

输入

第一行输入一个正整数T(0<T<=100),表示测试数据的组数
每组测试数据只有一行,输入一串字符(字符长度为11);

输出

每组输出占一行,输出数字的电话号码

样例输入

3
phqghumeayl
nlfdxfircvs
cxggbwkfnqd

样例输出

74744863295
65339347287
29442953673
#include <stdio.h>
#include <string.h>

void func(int );

int main(void)
{
	int n,i;
	char buf[13]={0};
	scanf("%d", &n);	
	fgetc(stdin);
	while(n){
		fgets(buf, 12, stdin);
		fgetc(stdin);
		for(i=0; i<11; i++){
			//printf("%c ", buf[i]);
			func(buf[i]);
		}
		printf("\n");
		n--;
	}
	return 0;
}

/*字母转化成数字*/
void  func(int n)
{
	switch(n){
		case 'a':
		case 'b':
		case 'c':
			printf("2");
			break;

		case 'd':
		case 'e':
		case 'f':
			printf("3");
			break;

		case 'g':
		case 'h':
		case 'i':
			printf("4");
			break;
		case 'j':
		case 'k':
		case 'l':
			printf("5");
			break;

		case 'm':
		case 'n':
		case 'o':
			printf("6");
			break;

		case 'p':
		case 'q':
		case 'r':
		case 's':
			printf("7");
			break;

		case 't':
		case 'u':
		case 'v':
			printf("8");
			break;

		case 'w':
		case 'x':
		case 'y':
		case 'z':
			printf("9");
			break;
		default:
			break;

	}
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值