📄 1068.cpp
字号:
#include <cstdio>
#include <string>
using namespace std;
struct Node
{
char ch;
char s[5];
int l;
}N[30]=
{
{'A',".-",2},{'B',"-...",4},{'C',"-.-.",4},{'D',"-..",3},{'E',".",1},
{'F',"..-.",4},{'G',"--.",3},{'H',"....",4},{'I',"..",2},{'J',".---",4},
{'K',"-.-",3},{'L',".-..",4},{'M',"--",2},{'N',"-.",2},{'O',"---",3},
{'P',".--.",4},{'Q',"--.-",4},{'R',".-.",3},{'S',"...",3},{'T',"-",1},
{'U',"..-",3},{'V',"...-",4},{'W',".--",3},{'X',"-..-",4},{'Y',"-.--",4},
{'Z',"--..",4},{'_',"..--",4},{'.',"---.",4},{',',".-.-",4},{'?',"----",4}
};
Node find(char a)
{
int i;
for( i = 0 ; i <= 29 ; i++)
if(N[i].ch == a)
return N[i];
}
char find_mores(char st[],int a,int begin)
{
int i,j;
for( i = 0 ; i <= 29 ; i++)
if(N[i].l == a )
{
for( j = 0 ; j <a ; j++)
if( N[i].s[j] != st[begin+j])
break;
if( j == a)
return N[i].ch;
}
}
int num[101];
char character[401];
int main()
{
//FILE *f ;
//f = fopen("1.txt","r");
int k=0,N;
scanf("%d",&N);
while(N--)
{
k++;
char string[101];
memset(num,0,sizeof(num));
memset(character,NULL,sizeof(character));
scanf("%s",string);
printf("%d: ",k);
int len = strlen(string);
int i,j;
int t=0;
for( i = 0 ; i < len ; i++)
{
Node find_temp = find(string[i]) ;
num[i] = find_temp.l;
for(j = 0 ; j<num[i] ; j++)
character[t++] = find_temp.s[j];
}
t = 0;
for(i = 0 ; i < len ; i++)
{
char srt =find_mores(character , num[len-1 -i] , t );
printf("%c",srt);
t += num[len-1 -i];
}
printf("\n");
}
return 0 ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -