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

描述

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

输入

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

输出

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

样例输入

3
phqghumeayl
nlfdxfircvs
cxggbwkfnqd

样例输出

74744863295
65339347287
29442953673
#include 
#include 

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;

	}
}

 

你可能感兴趣的:(C/C++)