摩斯密码实现

最近在学习摩斯密码。
我找到了这个
     这里写图片描述
人工对照比较麻烦,何尝不用程序实现呢?
//一年没摸了,写写水题= =

#include<cstdio>
#include<string>
#include<cstring>
#include<iostream>
#define N 10
#define M 100
using namespace std;
char mosi[N],key[M][N],trans[M];
void def(){
    trans[1]='a';strcpy(key[1],".-");
    trans[2]='b';strcpy(key[2],"-...");    
    trans[3]='c';strcpy(key[3],"-.-.");
    trans[4]='d';strcpy(key[4],"-..");
    trans[5]='e';strcpy(key[5],".");
    trans[6]='f';strcpy(key[6],"..-.");
    trans[7]='g';strcpy(key[7],"--.");
    trans[8]='h';strcpy(key[8],"....");
    trans[9]='i';strcpy(key[9],"..");
    trans[10]='j';strcpy(key[10],".---");
    trans[11]='k';strcpy(key[11],"-.-");
    trans[12]='l';strcpy(key[12],".-..");
    trans[13]='m';strcpy(key[13],"--");
    trans[14]='n';strcpy(key[14],"-.");
    trans[15]='o';strcpy(key[15],"---");
    trans[16]='p';strcpy(key[16],".--.");
    trans[17]='q';strcpy(key[17],"--.-");
    trans[18]='r';strcpy(key[18],".-.");
    trans[19]='s';strcpy(key[19],"...");
    trans[20]='t';strcpy(key[20],"-");
    trans[21]='u';strcpy(key[21],"..-");
    trans[22]='v';strcpy(key[22],"...-");
    trans[23]='w';strcpy(key[23],".--");
    trans[24]='x';strcpy(key[24],"-..-");
    trans[25]='y';strcpy(key[25],"-.--");
    trans[26]='z';strcpy(key[26],"--..");
    trans[27]='0';strcpy(key[27],"-----");
    trans[28]='1';strcpy(key[28],".----");
    trans[29]='2';strcpy(key[29],"..---");
    trans[30]='3';strcpy(key[30],"...--");
    trans[31]='4';strcpy(key[31],"....-");
    trans[32]='5';strcpy(key[32],".....");
    trans[33]='6';strcpy(key[33],"-....");
    trans[34]='7';strcpy(key[34],"--...");
    trans[35]='8';strcpy(key[35],"---..");
    trans[36]='9';strcpy(key[36],"----.");
    trans[37]='.';strcpy(key[37],".-.-.-");
    trans[38]=':';strcpy(key[38],"---...");
    trans[39]=',';strcpy(key[39],"--..--");
    trans[40]=';';strcpy(key[40],"-.-.-.");
    trans[41]='?';strcpy(key[41],"..--..");
    trans[42]='=';strcpy(key[42],"-...-");
    trans[43]='X';strcpy(key[43],".----.");
    trans[44]='/';strcpy(key[44],"-..-.");
    trans[45]='!';strcpy(key[45],"-.-.--");
    trans[46]='-';strcpy(key[46],"-....-");
    trans[47]='_';strcpy(key[47],"..--.-");
    trans[48]='"';strcpy(key[48],".-..-.");
    trans[49]='(';strcpy(key[49],"-.--.");
    trans[50]=')';strcpy(key[50],"-.--.-");
    trans[51]='$';strcpy(key[51],"...-..-");
    trans[52]='&';strcpy(key[52],"....");
    trans[53]='@';strcpy(key[53],".--.-.");
}
int main(){
    def();
    while(scanf("%s",mosi))
    {
        for (int i= 1;i <=53;i++)
            if(strcmp(mosi,key[i])==0) {cout<<trans[i];break;} 
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值