用c语言进行莫尔斯编码,翻译莫尔斯电码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include "windows.h"

#include "stdio.h"

char             n[41]={"abcdefghijklmnopqrstuvwxyz1234567890?,*"};

char             m[41][7]={{".-"},{"-..."},{"-.-."},{"-.."},{"."},{"..-."},{"--."},{"...."},{".."},{".---"},{"-.-"},{".-.."},

{"--"},{"-."},{"---"},{".--."},{"--.-"},{".-."},{"..."},{"-"},{"..-"},{"...-"},{".--"},{"-..-"},{"-.--"},{"--.."},{".----"},

{"..---"},{"...--"},{"....-"},{"....."},{"-...."},{"--..."},{"---.."},{"----."},{"-----"},{"..--.."},{"--..--"},{".-.-.-"}};

void MortoA(char* v)

{

int             i;

for(     i     =     0;     i    

{

if(0==strcmp(v,m[i]))

{

printf("%c \n",n[i]);

break;

}

if(i     ==     41)

{printf("输入错误\n");}

}

}

void AtoMor(char* v)

{

int             i,j;

for(i=0;v[i]!='\0';i++)

{

for(j=0;j<41;j++)

{

if(n[j]==v[i]){

printf("%c\t%s\n",v[i],m[j]);

break;}

}

}

}

int _tmain(int argc, _TCHAR* argv[])

{

printf("\t请注意输入不可超过256个字符\n\t请使用小写输入要翻译的字符\n\t输入莫尔斯密电码“.”为Di“-”为Dah\n\t输入“Q”退出\n\t另:暂不支持Morse连续翻译请逐一输入翻译\n\t\t\t\t\t\tcode by Machinel\n");

MA:

char             v[256]={};

scanf("%s",&v);

if(v[0]=='.'||v[0]=='-')

{

MortoA(v);

}else if(v[0]=='Q')

{

//system("pause");

return 0;

}else

{

AtoMor(v);

}

//system("PAUSE");

printf("\n\n\n");

goto MA;

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
莫尔斯电码是一种常用的电报编码,可以将字母、数字、标点符号等转换为一系列点和横线的组合。如果想要使用Matlab实现莫尔斯电码加密,可以按照以下步骤进行: 1. 定义莫尔斯电码字母表:莫尔斯电码字母表是由点和横线组成的字符编码序列,每个字母、数字、标点符号都有对应莫尔斯电码。可以在Matlab中定义一个莫尔斯电码字母表的结构体,每个字母、数字、标点符号对应一个字段,字段的值为该字符的莫尔斯电码。 ``` morseCode.alphabets.A = '.-'; morseCode.alphabets.B = '-...'; morseCode.alphabets.C = '-.-.'; morseCode.alphabets.D = '-..'; morseCode.alphabets.E = '.'; morseCode.alphabets.F = '..-.'; morseCode.alphabets.G = '--.'; morseCode.alphabets.H = '....'; morseCode.alphabets.I = '..'; morseCode.alphabets.J = '.---'; morseCode.alphabets.K = '-.-'; morseCode.alphabets.L = '.-..'; morseCode.alphabets.M = '--'; morseCode.alphabets.N = '-.'; morseCode.alphabets.O = '---'; morseCode.alphabets.P = '.--.'; morseCode.alphabets.Q = '--.-'; morseCode.alphabets.R = '.-.'; morseCode.alphabets.S = '...'; morseCode.alphabets.T = '-'; morseCode.alphabets.U = '..-'; morseCode.alphabets.V = '...-'; morseCode.alphabets.W = '.--'; morseCode.alphabets.X = '-..-'; morseCode.alphabets.Y = '-.--'; morseCode.alphabets.Z = '--..'; morseCode.alphabets.zero = '-----'; morseCode.alphabets.one = '.----'; morseCode.alphabets.two = '..---'; morseCode.alphabets.three = '...--'; morseCode.alphabets.four = '....-'; morseCode.alphabets.five = '.....'; morseCode.alphabets.six = '-....'; morseCode.alphabets.seven = '--...'; morseCode.alphabets.eight = '---..'; morseCode.alphabets.nine = '----.'; morseCode.alphabets.period = '.-.-.-'; morseCode.alphabets.comma = '--..--'; morseCode.alphabets.question = '..--..'; morseCode.alphabets.apostrophe = '.----.'; morseCode.alphabets.exclamation = '-.-.--'; ``` 2. 编写加密函数:加密函数的输入为需要加密的文本,输出莫尔斯电码序列。可以按照以下思路编写加密函数: - 将需要加密的文本全部转换为大写字母,方便后续处理 - 对于每个字符,查找莫尔斯电码字母表中对应莫尔斯电码,将莫尔斯电码序列拼接到一起,每个字符之间用空格隔开 ``` function [morseCodeSequence] = encryptMorseCode(text) % Convert all letters to uppercase text = upper(text); % Get the morse code dictionary morseCode = getMorseCodeDictionary(); % Initialize the morse code sequence morseCodeSequence = ''; % Iterate through each character in the text for i=1:length(text) % Get the morse code for the current character if isfield(morseCode.alphabets, text(i)) morseCodeSequence = [morseCodeSequence, morseCode.alphabets.(text(i)), ' ']; elseif text(i)==' ' morseCodeSequence = [morseCodeSequence, '/ ']; end end end ``` 3. 测试加密函数:可以编写一个简单的测试脚本来测试加密函数,例如: ``` text = 'Hello World!'; morseCodeSequence = encryptMorseCode(text); disp(morseCodeSequence); ``` 输出结果为: ``` .... . .-.. .-.. --- / .-- --- .-. .-.. -.. -.-.-- ``` 这就是将原始文本加密后的莫尔斯电码序列。 需要注意的是,莫尔斯电码加密只是一种简单的加密方式,容易被破解。如果需要更加安全的加密方式,可以考虑使用其他加密算法,如AES、RSA等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值