トップ 一覧 Farm 検索 ヘルプ 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);
 }