c - 如何在 C 中将莫尔斯编码为拉丁字母转换器
问题描述
所以,我的作业是做莫尔斯拉丁字母翻译。到目前为止,我已经设法将莫尔斯语编码为拉丁语翻译器,但我无法让它以其他方式工作。这是代码:
#include<stdio.h>
#define MAX 1000
int main(){
int i, j;
char alfabet[26]={'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
char* morse[27]={".-", "-..", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
char tekst[MAX];
printf("Podaj tekst pisany wielkimi literami: ");
scanf("%[^\n]c", tekst);
for(i=0;i<27;i++){
for(j=0;j<30;j++){
if(tekst[i]==alfabet[j]){
printf("%s ", morse[j]);
}
}
}
}
注意:我处于非常基本的 C 编程水平。我知道这可能是实现所需结果的最差方法,而且代码本身远非漂亮或有效,尤其是 for 循环。这不是我现在担心的问题,我会在以后处理它。
到目前为止,我最大的问题是相当琐碎的;程序在循环完成最后一次迭代后立即停止。无法打印任何内容,也不会执行任何命令。我不知道为什么。当它修复后,我最大的问题将是翻译本身。如何扫描莫尔斯电码字符串(例如“- . -..- -”,翻译为“TEXT”)并将其放入数组中?我想我不能像对多个字符那样使用 tekst[MAX] 数组吗?
注意 2:尽管任何想法都会有所帮助,但由于我对 C 的一般知识知之甚少,并不是所有的想法我都能理解或实施。先感谢您
解决方案
这是代码,
#include<stdio.h>
#include <string.h>
#define MAX 1000
int main(){
int i, j;
char alfabet[26]={'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
char* morse[27]={".-", "-..", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
char tekst[MAX];
printf("Podaj tekst pisany wielkimi literami: ");
scanf("%s", &tekst);
int length = (unsigned)strlen(tekst);
for(i=0; i<length; i++){
for(j=0; j<26; j++){
if(tekst[i]==alfabet[j]){
printf("%s ", morse[j]);
}
}
}
}
获取作为字符串输入的单词,您需要拥有 string.h 库。希望你得到答案。
推荐阅读
- c# - 无法使用 EF Core 播种数据库
- java - Why do I have to delete the calls to "super.doGet(req, resp)" and "super.doPost(req, resp)"?
- javascript - 如何在反应中从 json 构建 SQL 查询?
- c# - 使用 Mock 对异常 secario 进行单元测试
- c++ - C++17 向量类如何从参数包中推导出类型?
- php - 如何在 Laravel 的 1 条路线上执行 2 个功能?
- html - 如何使用引导程序将背景拆分为图像后面的 2 种不同颜色
- c++ - 如何访问 C++ 类中的私有数据成员
- shell - KSH 数学运算不返回十进制结果,而是返回 0
- python - Python - 从字符串列表中快速计算文本中的单词并以