题目
答案
#include<stdio.h>
#include<string.h>
int main()
{
char s[10][6]={"0 ","1,.?!","2ABC","3DEF","4GHI","5JKL","6MNO","7PQRS","8TUV","9WXYZ"};
char temp[1000],result[1000],t;
int count=0,i;
while(1)
{
scanf("%s",temp);
int n=strlen(temp);
if(temp[0]=='0') result[count++]=s[0][(n-1)%strlen(s[0])];
else if(temp[0]=='1') result[count++]=s[1][(n-1)%strlen(s[1])];
else if(temp[0]=='2') result[count++]=s[2][(n-1)%strlen(s[2])];
else if(temp[0]=='3') result[count++]=s[3][(n-1)%strlen(s[3])];
else if(temp[0]=='4') result[count++]=s[4][(n-1)%strlen(s[4])];
else if(temp[0]=='5') result[count++]=s[5][(n-1)%strlen(s[5])];
else if(temp[0]=='6') result[count++]=s[6][(n-1)%strlen(s[6])];
else if(temp[0]=='7') result[count++]=s[7][(n-1)%strlen(s[7])];
else if(temp[0]=='8') result[count++]=s[8][(n-1)%strlen(s[8])];
else if(temp[0]=='9') result[count++]=s[9][(n-1)%strlen(s[9])];
t=getchar();
if(t=='\n') break;
}
for(i=0;i<count;i++)
printf("%c",result[i]);
}
注意
temp和result的长度要尽可能大一些,否则会有部分节点报错