如何使用C语言编写一个程序,实现将英文字母A到Z对应到特定的无线电通信代码(摩尔斯电码)?
时间: 2024-10-24 08:12:43 浏览: 20
摩尔斯电码是一种早期的点划通信方式,用短促和停顿来表示字母和数字。要实现这个功能,你可以创建一个映射表,其中包含字母与其对应的摩尔斯电码。以下是一个简单的C语言程序,它使用数组来存储这个映射关系,并提供了一个函数来转换输入的英文字符为摩尔斯电码:
```c
#include <stdio.h>
#include <string.h>
// 定义摩尔斯电码字典
const char* morseCodeTable[] = {
".-", "-...", "-.-.", "-..", ".", "..-.", "--.",
"....", "..", ".---", "-.-", ".-..", "--", "-.",
"---", ".--.", "--.-", ".-.", "...", "-", "..-",
"...-", ".--", "-..-", "-.--", "--.."
};
// 函数来获取某个字母的摩尔斯电码
const char* getMorseCode(char letter) {
if (letter >= 'A' && letter <= 'Z') { // 只处理大写字母
return morseCodeTable[letter - 'A'];
}
return "";
}
int main() {
printf("请输入一个英文大写字母或输入'q'退出:\n");
char input;
while ((input = getchar()) != 'q') {
if (isalpha(input)) { // 检查是否是字母
const char* morse = getMorseCode(input);
if (morse) {
printf("%s ", morse); // 输出摩尔斯电码
} else {
printf("无效输入, 忽略...\n");
}
} else {
printf("忽略非字母字符...\n");
}
}
return 0;
}
```
在这个程序中,`getMorseCode`函数接受一个字母,如果它是大写的英文字母,则返回相应的摩尔斯电码;否则,返回空字符串表示无效输入。
运行此程序时,按照提示输入字母,程序会输出其对应的摩尔斯电码。当输入`q`时,程序会退出。
阅读全文