📄 1905714_ac_0ms_60k.c
字号:
# include <stdio.h>
# include <string.h>
char M[27][6] = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
int main()
{
int num[101];
char morse[500], de[110], tmp[10];
int n;
int i, j, p, k;
scanf("%d",&n);
for(i = 1; i <= n; i++)
{
memset(de,'\0',sizeof(de));
memset(morse,'\0',sizeof(morse));
scanf("%s",de);
for(j = 0; de[j]!='\0'; j++)
{
switch(de[j])
{
case '.': num[j] = 4;strcat(morse,"---.");break;
case ',': num[j] = 4;strcat(morse,".-.-");break;
case '?': num[j] = 4;strcat(morse,"----");break;
case '_': num[j] = 4;strcat(morse,"..--");break;
default : num[j] = strlen(M[de[j]-'A']);strcat(morse,M[de[j]-'A']);break;
}
}
printf("%d: ",i);
p = 0;
for(j = strlen(de) - 1; j >= 0; j--)
{
memset(tmp,'\0',sizeof(tmp));
/*memcpy(tmp,&morse[p],num[j]);*/
for(k = p; k < p + num[j]; k++)
tmp[k-p] = morse[k];
tmp[num[j]] = '\0';
p += num[j];
if(strcmp(tmp,"---.")==0) {printf(".");continue;}
if(strcmp(tmp,".-.-")==0) {printf(",");continue;}
if(strcmp(tmp,"----")==0) {printf("?");continue;}
if(strcmp(tmp,"..--")==0) {printf("_");continue;}
for(k = 0; k < 26; k++)
if(strcmp(tmp,M[k])==0)
{
printf("%c",k+'A');
break;
}
}
printf("\n");
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -