摩尔斯码c语言,摩尔斯码教程

本文目录一览:

c语言莫尔斯码 将字符串HappyNewYear2014译成Morse码(码间一空格,码表见下表)并在解密后输出以验证

#include stdio.h

#include string.h

#include ctype.h

char const * const morse_table[]=

{“._”,//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

“_____”,//0

“.____”,//1

“..___”,//2

“…__”,//3

“…._”,//4

“…..”,//5

“_….”,//6

“__…”,//7

“___..”,//8

“____.”//9

};

void encodeMorse(char *d,const char *s);

void decodeMorse(char *d,const char *s);

int main(void)

{

char str1[1000],str2[1000];

encodeMorse(str1,”HappyNewYear2014″);

puts(str1);

decodeMorse(str2,str1);

puts(str2);

return 0;

}

void encodeMorse(char *d,const char *s)

{

*d=’\0′;

while(*s)

{

if(isalpha(*s))

{

strcat(d,morse_table[toupper(*s)-‘A’]);

}

if(isdigit(*s))

{

strcat(d,morse_table[*s-‘0’+(‘Z’-‘A’)+1]);

}

strcat(d,” “);

s++;

}

}

void decodeMorse(char *d,const char *s)

{

char temp[50];

int i;

while(*s)

{

sscanf(s,”%s”,temp);

s+=strlen(temp);

while(*s==’ ‘)s++;

for(i=0;i36;++i)

{

if(!strcmp(temp,morse_table[i]))

{

*d++=(i26?(‘A’+i):(‘0’+i-26));

}

}

}

*d=’\0′;

}

morse的编码表由于是手打的缘故,有可能写错的,错了也没关系,自己改下编码,不用修改程序本身

C语言关于字母转摩尔斯代码程序

char a[26][8]定义了26个字母对应的摩尔斯编码字符串,也就是a[0]代表字符‘a’的摩尔斯编码字符串,a[1]代表字符’b’的摩尔斯编码字符串,……等等。因为’a‘字符的ASCII值就是97,所以str[i]-97则计算出了字符str[i]所处的位置索引(0~25之间),而a[str[i]-97]即代表字符str[i]的摩尔斯编码字符串了。其实这个程序还不够严密,如果字母是大写的,会出现错误的!因为大写字符’A’的ASCII值是65。

用C++编程把英文单词转换为莫尔斯码

/*英文转摩尔斯码*/ #includestdio.h #includeiostream using namespace std; int main() { char a[26][6]={{‘.’,’-‘},{‘-‘,’.’,’.’,’.’},{‘-‘,’.’,’-‘,’.’},{‘-‘,’.’,’.’}, {‘.’},{‘.’,’.’,’-‘,’.’},{‘-‘,’-‘,’.’},{‘.’,’.’,’.’,’.’}, {‘.’,’.’},{‘.’,’-‘,’-‘,’-‘},{‘-‘,’.’,’-‘},{‘.’,’-‘,’.’,’.’}, {‘-‘,’-‘},{‘-‘,’.’},{‘-‘,’-‘,’-‘},{‘.’,’-‘,’-‘,’.’}, {‘-‘,’-‘,’.’,’-‘},{‘.’,’-‘,’.’},{‘.’,’.’,’.’},{‘-‘}, {‘.’,’.’,’-‘},{‘.’,’.’,’.’,’-‘},{‘.’,’-‘,’-‘},{‘-‘,’.’,’.’,’-‘}, {‘-‘,’.’,’-‘,’-‘},{‘-‘,’-‘,’.’,’.’}}; int i,m; char str[100]; char c; gets(str); printf(“%s”,str); for (i=0;(c=str[i])!=’\0′;i++) if(c==’ ‘) printf(” “); else printf(“%s”,a[m=str[i]-97]),printf(” “); printf(“\n”); getchar(); return 0; } /*摩尔斯码转英文*/ #includestdio.h #include string.h #include iostream using namespace std; int main() { char a[26][6]={{‘.’,’-‘},{‘-‘,’.’,’.’,’.’},{‘-‘,’.’,’-‘,’.’},{‘-‘,’.’,’.’}, {‘.’},{‘.’,’.’,’-‘,’.’},{‘-‘,’-‘,’.’},{‘.’,’.’,’.’,’.’}, {‘.’,’.’},{‘.’,’-‘,’-‘,’-‘},{‘-‘,’.’,’-‘},{‘.’,’-‘,’.’,’.’}, {‘-‘,’-‘},{‘-‘,’.’},{‘-‘,’-‘,’-‘},{‘.’,’-‘,’-‘,’.’}, {‘-‘,’-‘,’.’,’-‘},{‘.’,’-‘,’.’},{‘.’,’.’,’.’},{‘-‘}, {‘.’,’.’,’-‘},{‘.’,’.’,’.’,’-‘},{‘.’,’-‘,’-‘},{‘-‘,’.’,’.’,’-‘}, {‘-‘,’.’,’-‘,’-‘},{‘-‘,’-‘,’.’,’.’}}; int b,i,m; char str[100],k; char c,*p,t[6]; gets(str); printf(“%s”,str); p=str; while(*p!=’\0′) { i=0; b=0; k=0; while(*p!=’ ‘*p!=’\0′) { t[i++]=*p; p++; } t[i]=’\0′; while(strcmp(a[k++],t)!=0); c=k-1+97; putchar(c); while(*p==’ ‘) { b++;p++;} if(b==3) printf(” “); } getchar(); return 0; }

C摩尔斯码程序设计

输入摩斯电码 翻译出 英文,只能识别英文字母, 字母间隔一个空格,单词间隔三个空格 输入摩斯电码

#include “stdio.h”

#include “conio.h”

#include “string.h”

int morseindex(const char *a);

int main(void)

{

int i, j, space;

char *p;

char buffer[1024];

char a[6];

gets(buffer);

p = buffer;

i = 0;

space = 0;

while(1)

{

if (*p == 32 || *p == ‘\0’)

{

a[i] = ‘\0’;

if (strlen(a) != 0)

{

j = morseindex(a);

if (j = 0)

printf(“%c”, ‘a’ + j);

}

i = 0;

space++;

if (space == 3)

printf(” “);

}

else

{

a[i++] = *p;

space = 0;

}

if (*p == ‘\0’)

break;

p++;

}

}

int morseindex(const char *a)

{

int i;

static char morsetable[26][5] = {{“.-“}, {“-…”}, {“-.-.”}, {“-..”}, {“.”}, {“..-.”}, {“–.”}, {“….”}, {“..”}, {“.—“}, {“-.-“}, {“.-..”}, {“–“}, {“-.”}, {“—“}, {“.–.”}, {“–.-“}, {“.-.”}, {“…”}, {“-“}, {“..-“}, {“…-“}, {“.–“}, {“-..-“}, {“-.–“}, {“–..”}};

for (i = 0; i 26; i++)

{

if (strcmp(a, morsetable[i]) == 0)

{

return i;

}

}

return -1;

}

c语言 摩斯密码问题 在线等,急

az[26[5] 是编码表,你要校对一下,我只是快速拍入,给你示意。

程序第一部分是 英文到莫码输出。英文只考虑了小写。

(大写转小写你可以用 -‘A’+’a’, 下标为

printf(“%s”,az[s1[0]-‘A’]);

for (i=1;iL;i++) printf(“|%s”,az[s1[i]-‘A’]);

)

程序第2部分是莫码到英文小写。

#include stdio.h

#include stdlib.h

char az[26][5]={

“*-“,”-***”,”-*-*”,”-**”,

“*”,”**-*”,”–*”,”****”,

“**”,”*—“,”-*-*”,”*-**”,

“–“,”-*”,”—“,”*–*”,

“–*-“,”*-*”,”***”,”-“,

“**-“,”***-“,”*–“,”-**-“,

“-*–“,”–**”};

char toA(char *s){

int i;

for (i=0;i26;i++) if (strcmp(az[i][0],s)==0) return i+’a’;

printf(“wrong input code: %s\n”,s);

}

int main(){

char s1[80]=”moses”;

char s2[80];

int i,j,L;

L=strlen(s1);

printf(“%s”,az[s1[0]-‘a’]);

for (i=1;iL;i++) printf(“|%s”,az[s1[i]-‘a’]);

printf(“\n”);

// Part2:

printf(“please input ****|*|*-**|*-**|—\n”);

scanf(“%[^|]”,s1);

printf(“%c”,toA(s1));

while (scanf(“|%[^|,’\n’]”,s1)==1) {

printf(“%c”,toA(s1));

}

}

莫尔斯码的c语言怎么编写啊

定义两个数组,一个是char

*型,放A-Z,0-9的莫尔斯码,一个是char型,放’A’-‘Z’,’0′-‘9’.

原文转电码时,对每个字符查找其在第二个数组中的位置i,那么第一个数组中下标为i的就是对应的莫尔斯码.

电码转原文时,在第一个数组中用strcmp查找莫尔斯码,然后第二个数组中对应字符.

比如,放莫尔斯码的数组是char

*morse[36],放原文的是char

str[36],那么字符c转莫尔斯码就可以这样:

char

*Char2Morse(char

c)

{

for(int

i=0;i36;i++)

if(str[i]==c)

return

morse[i];

return

NULL;

}

莫尔斯码转原文就是

char

Morse2Char(char

*m)

{

for(int

i=0;i36;i++)

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

return

str[i];

return

0;

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/242220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:47
下一篇 2024-12-12 12:47

相关推荐

  • MQTT使用教程

    MQTT是一种轻量级的消息传输协议,适用于物联网领域中的设备与云端、设备与设备之间的数据传输。本文将介绍使用MQTT实现设备与云端数据传输的方法和注意事项。 一、准备工作 在使用M…

    编程 2025-04-29
  • Python3.6.5下载安装教程

    Python是一种面向对象、解释型计算机程序语言。它是一门动态语言,因为它不会对程序员提前声明变量类型,而是在变量第一次赋值时自动识别该变量的类型。 Python3.6.5是Pyt…

    编程 2025-04-29
  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Qt雷达探测教程

    本文主要介绍如何使用Qt开发雷达探测程序,并展示一个简单的雷达探测示例。 一、环境准备 在开始本教程之前,需要确保你的开发环境已经安装Qt和Qt Creator。如果没有安装,可以…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • 猿编程python免费全套教程400集

    想要学习Python编程吗?猿编程python免费全套教程400集是一个不错的选择!下面我们来详细了解一下这个教程。 一、课程内容 猿编程python免费全套教程400集包含了从P…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29

发表回复

登录后才能评论