Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Keitai Message"
https://onlinejudge.u-aizu.ac.jp/problems/2006
・携帯電話のメッセージ
僕が作成、提出したコードは、以下のとおりです。
・Aizu Online Judge in C++ #Volume20 - 2006 : Keitai Message
/* Aizu Online Judge in C++ #Volume20 - 2006 : Keitai Message https://onlinejudge.u-aizu.ac.jp/problems/2006 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,a[]={0,5,3,3,3,3,3,4,3,4}; char*p,*q,s[1028],*t[]={"",".,!? ","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; cin>>n; while(n--){ memset(s,0,1028); scanf("%s",s); for(p=s;*p;){ q=strpbrk(p,"0\0"); if(*p-'0'){ putchar(t[*p-'0'][(q-p-1)%a[*p-'0']]); } p=q+1; } puts(""); } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/