摩尔斯转信息

有加密,当然要有解密。这次敲完没有case回响了,取而代之的是,else,else,else。。。

/*************************
 *Morse code 2           *
 *                 by:ZCB*
 *************************/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(void) 
{
    char a[100];
    char b[100];
    int i = 0;
    printf("Please input your Morse code now.\n");
    printf("Tips:Please use * and - .\n");
    scanf("%s",&a);
    while(a[i] != '\0')
    {
        int k = 0;
        while(a[i] != '\0'&&a[i] != '/')
        {
            b[k] = a[i];
            k++;
            i++;
        } 
        b[k] = '\0';
        if(strcmp(b,"*-") == 0)
          printf("a");
        else if(strcmp(b,"-***") == 0)
          printf("b");
        else if(strcmp(b,"-*-*") == 0)
          printf("c");
        else if(strcmp(b,"-**") == 0)
          printf("d");
        else if(strcmp(b,"*") == 0)
          printf("e");
        else if(strcmp(b,"**-*") == 0)
          printf("f");
        else if(strcmp(b,"--*") == 0)
          printf("g");
        else if(strcmp(b,"****") == 0)
          printf("h");
        else if(strcmp(b,"**") == 0)
          printf("i");
        else if(strcmp(b,"*---") == 0)
          printf("j");
        else if(strcmp(b,"-*-") == 0)
          printf("k");
        else if(strcmp(b,"*-**") == 0)
          printf("l");
        else if(strcmp(b,"--") == 0)
          printf("m");
        else if(strcmp(b,"-*") == 0)
          printf("n");
        else if(strcmp(b,"---") == 0)
          printf("o");
        else if(strcmp(b,"*--*") == 0)
          printf("p");
        else if(strcmp(b,"--*-") == 0)
          printf("q");
        else if(strcmp(b,"*-*") == 0)
          printf("r");
        else if(strcmp(b,"***") == 0)
          printf("s");
        else if(strcmp(b,"-") == 0)
          printf("t");
        else if(strcmp(b,"**-") == 0)
          printf("u");
        else if(strcmp(b,"***-") == 0)
          printf("v");
        else if(strcmp(b,"*--") == 0)
          printf("w");
        else if(strcmp(b,"-**-") == 0)
          printf("x");
        else if(strcmp(b,"-*--") == 0)
          printf("y");
        else if(strcmp(b,"--**") == 0)
          printf("z");
        else if(strcmp(b,"-----") == 0)
          printf("0");
        else if(strcmp(b,"*----") == 0)
          printf("1");
        else if(strcmp(b,"**---") == 0)
          printf("2");
        else if(strcmp(b,"***--") == 0)
          printf("3");
        else if(strcmp(b,"****-") == 0)
          printf("4");
        else if(strcmp(b,"*****") == 0)
          printf("5");
        else if(strcmp(b,"-****") == 0)
          printf("6");
        else if(strcmp(b,"--***") == 0)
          printf("7");
        else if(strcmp(b,"---**") == 0)
          printf("8");
        else if(strcmp(b,"----*") == 0)
          printf("9");
        else if(strcmp(b,"*-*-*-") == 0)
          printf(".");
        else if(strcmp(b,"--**--") == 0)
          printf(",");
        else if(strcmp(b,"---***") == 0)
          printf(":");
        else if(strcmp(b,"-*-*-*") == 0)
          printf(";");
        else if(strcmp(b,"*----*") == 0)
          printf("'");
        else if(strcmp(b,"*-**-*") == 0)
          printf("\"");
        else if(strcmp(b,"-****-") == 0)
          printf("-");
        else if(strcmp(b,"**--*-") == 0)
          printf("_");
        else if(strcmp(b,"-***-") == 0)
          printf("=");
        else if(strcmp(b,"**--**") == 0)
          printf("?");
        else if(strcmp(b,"-**-*") == 0)
          printf("/");
        else if(strcmp(b,"-*-*--") == 0)
          printf("!");
        else if(strcmp(b,"-*--*") == 0)
          printf("(");
        else if(strcmp(b,"-*--*-") == 0)
          printf(")");
        else if(strcmp(b,"***-**-") == 0)
          printf("$");
        else if(strcmp(b,"*-***") == 0)
          printf("&");
        else if(strcmp(b,"*--*-") == 0)
          printf("@");
        else
          printf("?");
        int h = 0;
        for(;b[h] != '\0';h++)
        {
            b[h] = '\0';    
        }
        if(a[i] != '\0')
        {
            i++;
        }
    }
    printf("\n");
    system("pause");
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值