摩爾斯碼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/zh-hk/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

發表回復

登錄後才能評論