bacon_egg @ ウィキ コケいろ-Keitai Message
※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h> 
 
int main(){
	char str[1024+1];
 
	int TestCaseNum;							// 文字列の数を記憶
	scanf("%d",&TestCaseNum);
 
	for(int i=0 ; i<TestCaseNum ; i++){
		scanf("%s",str);						// 1行読み込み
		int len = strlen(str);					// 文字数
		int renzoku;							// 同じボタンが連続で押された回数
		int CharKind = (int)(str[0]-'0');		// 連続で押されている文字
		bool InitFlag = true;					// 初期化フラグ
		for(int j=0 ; j<len ; j++){
			if( InitFlag ){
				InitFlag	= false;
				renzoku		= 0;
				CharKind	= (int)(str[j]-'0');		// 連続で押されている文字
			}
			char buf = str[j];
			if( buf!='0' ){						// 確定ボタン以外なら連続数値を増加
				renzoku++;
			}
			else{
				if( renzoku!=0 ){
					int num;					// 結局何番目の文字なのか
					switch( CharKind ){
						case 2:
						case 3:
						case 4:
						case 5:
						case 6:
						case 8:
							num = (renzoku-1)%3;	// 3文字ループボタン
							break;
						case 7:
						case 9:
							num = (renzoku-1)%4;	// 4文字ループボタン
							break;
						case 1:
							num = (renzoku-1)%5;	// 5文字ループボタン
							break;
					}
					char Output[9][8]={
						{".,!? "},			// 最後にスペースがある
						{"abc"},
						{"def"},
						{"ghi"},
						{"jkl"},
						{"mno"},
						{"pqrs"},
						{"tuv"},
						{"wxyz"},
					};
					printf("%c",Output[CharKind-1][num]);	// 1文字出力
				}
				InitFlag = true;
			}
		}
		puts("");
	}
}