69,371
社区成员
发帖
与我相关
我的任务
分享
#include<string.h>//代码是很水的,凑合这看把,问题在下面
int main()
{
char message[1005],*p;
char letter_box[][6]={{',','.'},{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'},{'m','n','o'},{'p','q','r','s'},{'t','u','v'},{'w','x','y','z'}};
int v=0;
static int i;
char print[1];
while(scanf("%s",message)==1){
p=message;
strcpy(print,"\0");
if(v==1){
printf("\n");
v=1;
}
for(i=0;*(p+i)!='#';i++){
printf("%c\n",*(p+i));
if(*(p+i)==',')
strcat(print,"1 ");
else if(*(p+i)=='.')
strcat(print,"11 ");
else if(*(p+i)=='a')
strcat(print,"2 ");
else if(*(p+i)=='b')
strcat(print,"22 ");
else if(*(p+i)=='c')
strcat(print,"222 ");
else if(*(p+i)=='d')
strcat(print,"3 ");
else if(*(p+i)=='e')
strcat(print,"33 ");
else if(*(p+i)=='f')
strcat(print,"333 ");
else if(*(p+i)=='g')
strcat(print,"4 ");
else if(*(p+i)=='h') /*输入测试数据“ahans#”debug一下发现当指针走到h的时候从strcat函数出来的时候i值居然由原来的1变成了32,太奇怪了,但后来我把i定义成static int i;就没问题了,请问这是什么情况啊?????*/
strcat(print,"44 ");
else if(*(p+i)=='i')
strcat(print,"444 ");
else if(*(p+i)=='j')
strcat(print,"5 ");
else if(*(p+i)=='k')
strcat(print,"55 ");
else if(*(p+i)=='l')
strcat(print,"555 ");
else if(*(p+i)=='m')
strcat(print,"6 ");
else if(*(p+i)=='n')
strcat(print,"66 ");
else if(*(p+i)=='o')
strcat(print,"666 ");
else if(*(p+i)=='p')
strcat(print,"7 ");
else if(*(p+i)=='q')
strcat(print,"77 ");
else if(*(p+i)=='r')
strcat(print,"777 ");
else if(*(p+i)=='s')
strcat(print,"7777 ");
else if(*(p+i)=='t')
strcat(print,"8 ");
else if(*(p+i)=='u')
strcat(print,"88 ");
else if(*(p+i)=='v')
strcat(print,"888 ");
else if(*(p+i)=='w')
strcat(print,"9 ");
else if(*(p+i)=='x')
strcat(print,"99 ");
else if(*(p+i)=='y')
strcat(print,"999 ");
else if(*(p+i)=='z')
strcat(print,"9999 ");
}
printf("%s",print);
/* for(i=0;i<(strlen(print)-1);i++){
printf("%c",print[i]);
}*/
printf("\n");
}
return 0;
}
#include<stdio.h>#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char* keyBoard[]=
{
",.","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz",NULL
};
char table[28][5];
void initTable()
{
table[26][0]='1';
table[27][0]=table[27][1]='1';
table[26][1]=table[27][2]=NULL;
for(int i=1;keyBoard[i]!=NULL;++i)
{
for(int j=0;keyBoard[i][j]!=NULL;++j)
{
for(int k=0;k<j+1;++k)
{
table[keyBoard[i][j]-'a'][k]='0'+i+1;
}
table[keyBoard[i][j]-'a'][j+1]=NULL;
}
}
}
void sendMsg(const char *msg)
{
for(int i=0;msg[i]!='#';++i)
{
if(msg[i]==keyBoard[0][0]) //,
{
printf("%s ",table[26]);
}
else if(msg[i]==keyBoard[0][1]) //.
{
printf("%s ",table[27]);
}
else
{
printf("%s ",table[msg[i]-'a']);
}
}
printf("\n");
}
int main()
{
initTable();
sendMsg("ahans#");
return 0;
}