用 C 语言实现莫尔斯电码编码
莫尔斯电码是最古老的数字编码之一:每个字母对应一串点和划。用 C 语言实现英文字母到莫尔斯电码的编码,核心代码只要十几行。
思路
把 26 个字母的莫尔斯码按字母表顺序存进一个字符串指针数组,编码时把字符减去 'a' 得到下标,直接查表输出:
1 | char *code[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-.", |
关键点
“字符运算当数组下标” 是这类查表法的核心:'a' 的 ASCII 是 97,'b' 是 98……所以 x[i] - 'a' 正好是字母在表中的位置。同理,数字字符转数值用 c - '0',也是同一个思路。
输入 hello world,输出:
1 | .... . .-.. .-.. --- .-- --- .-. .-.. -.. |
可以继续玩的方向
- 补上解码函数:把点和划的序列反查回字母(
strcmp遍历或建一颗二叉树——点走左子树、划走右子树) - 用蜂鸣器或
Beep()把点和划响出来,就是一台声报机
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 寰宇体的世界!
评论
GiscusTwikoo
