トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

2005ra2.c

#include <stdio.h>
#include <string.h>
#include <ctype.h>

#define SMAX 1024

int main(void)
{
	int a,c,i,n,p;
	// ボタン2を2回押した b[2][2] -> 'b'
	char b[10][6]={""," .,!?","cab","fde","igh","ljk","omn","spqr","vtu","zwxy"};
	// 各ボタンで表す文字数
	int r[10];
	char s[SMAX];
	
	// 各ボタンで表す文字数を計算する
	for(i=0; i<10; i++){
		r[i]=strlen(b[i]);
	//	printf("%d ", r[i]);
	}
	//printf("\n");
	
	scanf("%d", &n);
	
	for(i=0; i<n; i++){
		scanf("%s", s);
		
		p=0; //何文字目を読んでいるか表す変数
		while(s[p]){
			c=0;
			a=s[p]-'0'; 	//今読んでる文字を整数に変換
			if(s[p]!='0' && isdigit(s[p])){ 	// 0以外だったら
				while(s[p]!='0'){ // 0が来るまで文字数をカウントする
					c++;
					p++;
				}
				// ボタンaをc回押したときの文字を表示
				printf("%c", b[a][c % r[a]]);
			}
			p++;
		}
		printf("\n");
	}
	
	return(0);
}