直接判断的
#include<stdio.h> #include<string.h> int main(){ char str[105],des[105]={0}; char tmp; while(scanf("%s",str)!=EOF){ for(int i=0;str[i]!=0;i++){ if(str[i]>='A'&&str[i]<='Z'){ tmp='a'+str[i]-'A'+1; if(tmp>='a'&&tmp<='z'){ des[i]=tmp; }else{ des[i]='a'; } }else if(str[i]>='0'&&str[i]<='9'){ des[i]=str[i]; }else{ if(str[i]>='a'&&str[i]<='c'){ des[i]='2'; }else if(str[i]>='d'&&str[i]<='f'){ des[i]='3'; }else if(str[i]>='g'&&str[i]<='i'){ des[i]='4'; }else if(str[i]>='j'&&str[i]<='l'){ des[i]='5'; }else if(str[i]>='m'&&str[i]<='o'){ des[i]='6'; }else if(str[i]>='p'&&str[i]<='s'){ des[i]='7'; }else if(str[i]>='t'&&str[i]<='v'){ des[i]='8'; }else if(str[i]>='w'&&str[i]<='z'){ des[i]='9'; } } } printf("%s\n",des); } return 0; }