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

2005ra1.c

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

#define SMAX 1025

int main(void)
{
	int c,i,n,p;
	char s[SMAX];
	
	// 文章の数
	scanf("%d", &n);
	for(i=0; i<n; i++){
		scanf("%s", s);
		
		p=0; //何文字目を読んでいるか表す変数
		while(s[p]){ // 文字列の一番最後で終了
			switch(s[p]){
			 case '1':
				c=0;
				while(s[p]!='0'){
					c++; p++;
				}
				switch(c%=5){
					case 1: putchar('.'); break;
					case 2: putchar(','); break;
					case 3: putchar('!'); break;
					case 4: putchar('?'); break;
					case 0: putchar(' '); break;
				}
				break;
			 case '2':
				c=0;
				while(s[p]!='0'){
					c++; p++;
				}
				switch(c%=3){
					case 1: putchar('a'); break;
					case 2: putchar('b'); break;
					case 0: putchar('c'); break;
				}
				break;
			 case '3':
				c=0;
				while(s[p]!='0'){
					c++; p++;
				}
				switch(c%=3){
					case 1: putchar('d'); break;
					case 2: putchar('e'); break;
					case 0: putchar('f'); break;
				}
				break;
			 case '4':
				c=0;
				while(s[p]!='0'){
					c++; p++;
				}
				switch(c%=3){
					case 1: putchar('g'); break;
					case 2: putchar('h'); break;
					case 0: putchar('i'); break;
				}
				break;
			 case '5':
				c=0;
				while(s[p]!='0'){
					c++; p++;
				}
				switch(c%=3){
					case 1: putchar('j'); break;
					case 2: putchar('k'); break;
					case 0: putchar('l'); break;
				}
				break;
			 case '6':
				c=0;
				while(s[p]!='0'){
					c++; p++;
				}
				switch(c%=3){
					case 1: putchar('m'); break;
					case 2: putchar('n'); break;
					case 0: putchar('o'); break;
				}
				break;
			 case '7':
				c=0;
				while(s[p]!='0'){
					c++; p++;
				}
				switch(c%=4){
					case 1: putchar('p'); break;
					case 2: putchar('q'); break;
					case 3: putchar('r'); break;
					case 0: putchar('s'); break;
				}
				break;
			 case '8':
				c=0;
				while(s[p]!='0'){
					c++; p++;
				}
				switch(c%=3){
					case 1: putchar('t'); break;
					case 2: putchar('u'); break;
					case 0: putchar('v'); break;
				}
				break;
			 case '9':
				c=0;
				while(s[p]!='0'){
					c++; p++;
				}
				switch(c%=4){
					case 1: putchar('w'); break;
					case 2: putchar('x'); break;
					case 3: putchar('y'); break;
					case 0: putchar('z'); break;
				}
				break;
			}
			p++;
		}
		printf("\n");
	}
	
	return(0);
}