莫尔斯编码的c语言实现,C程序-蓝桥-摩尔斯电码

问题描述

摩尔斯电码破译。类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文。请不要使用"zylib.h",只能使用标准库函数。用' * '表示' . ',中间空格用' | '表示,只转化字符表。

摩尔斯码定义见:http://baike.baidu.com/view/84585.htm?fromId=253988。

1c3b5ad6950749aea50d382d516e6694.jpg

提示

清橙进行评测时,输入是以EOF结尾的,而不是换行符。(EOF不是一个字符,“以EOF结尾”是一种通俗但不严谨的说法。)因此可以通过以下方式之一获取输入:

1. 一次读入整行字符串,再进行后续解析。

2. 使用getchar或scanf一次读入一个字符,通过它们的返回值判断输入结束。

样例输出

37351a6043b1410384275742c4cd3ba9.jpg

思路:先用二维数组存储摩尔斯电码,再将接收到的电码与之比较,用ACSII码处理更方便

编译器上没有什么问题,但是测试不通过,不知道为什么,也许和循环输入有关,EOF

#in

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值