莫尔斯码

来源:互联网 发布:电气原理图制作软件 编辑:程序博客网 时间:2024/04/29 17:40

也许最著名的编码机制是莫尔斯码,是1832年由SamuelMorse创立的,用于电报系统使用。莫尔斯码对字母、数字和一些特殊符号(如圆点、逗号、分号)指定一系列点和线。在面向声音的系统中,点表示短音,线表示长音。点线表示还用于面向光的系统和面向信号标志系统。单词之间用空格分开,没有点和线。在面向声音的系统中,空格表示为短时间不发声音。下图显示了莫尔斯码的国际化版本。 编写一个程序,读取英语短语,并将其编制成莫尔斯码。莫尔斯码编码字母之间用一个*,莫尔斯码编码单词之间用三个***间隔。

Input
Output

Sample Input

I LOVE CHINA

Sample Output

..***.-..*---*...-*.***-.-.*....*..*-.*.-

#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
int main()
{
 int i,len;
    chars[100];
 gets(s);
 len=strlen(s);
 for(i=0;i<len;i++)
   
  switch(s[i])
       
  case 'A': cout<<".-";break;
  case 'B': cout<<"-...";break; 
  case 'C': cout<<"-.-.";break;
  case 'D': cout<<"-..";break;
  case 'E': cout<<".";break; 
  case 'F': cout<<"..-.";break;
  case 'G': cout<<"--.";break; 
  case 'H': cout<<"....";break;   
  case 'I': cout<<"..";break;
  case 'J': cout<<".---";break; 
  case 'K': cout<<"-.-";break;
  case 'L': cout<<".-..";break;
  case 'M': cout<<"--";break;  
  case 'N': cout<<"-.";break; 
  case 'O': cout<<"---";break;  
  case 'P': cout<<".--.";break;
  case 'Q': cout<<"--.-";break; 
  case 'R': cout<<".-.";break; 
  case 'S': cout<<"...";break; 
  case 'T': cout<<"-";break;
  case 'U': cout<<"..-";break; 
  case 'V': cout<<"...-";break; 
  case 'W': cout<<".--";break; 
  case 'X': cout<<"-..-";break; 
  case 'Y': cout<<"-.--";break;
  case 'Z': cout<<"--..";break; 
  case '1': cout<<".----";break;
  case '2': cout<<"..---";break; 
  case '3': cout<<"...--";break; 
  case '4': cout<<"....-";break;
  case '5': cout<<".....";break; 
  case '6': cout<<"-....";break; 
  case '7': cout<<"--...";break; 
  case '8': cout<<"---..";break; 
  case '9': cout<<"----.";break; 
  case '0': cout<<"-----";break;
  }
  if((s[i]>='A'&&s[i]<='Z')&&s[i+1]=='') 
   cout<<"***";
  else  if((s[i]>='A'&&s[i]<='Z')&&(s[i+1]>='A'&&s[i+1]<='Z'))
   cout<<"*";
 }
 cout<<endl;
 return 0; 
}

0 0