您现在的位置是:主页 > news > 自学做网站要多久/海外短视频软件

自学做网站要多久/海外短视频软件

admin2025/4/28 21:32:10news

简介自学做网站要多久,海外短视频软件,itc 做市场分析的网站,如何添加网站为信任站点问题描述摩尔斯电码破译。类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文。请不要使用"zylib.h",只能使用标准库函数。用 * 表示 . ,中间空格用 | 表示,只转化字符表。摩尔斯码定义见:…

自学做网站要多久,海外短视频软件,itc 做市场分析的网站,如何添加网站为信任站点问题描述摩尔斯电码破译。类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文。请不要使用"zylib.h",只能使用标准库函数。用 * 表示 . ,中间空格用 | 表示,只转化字符表。摩尔斯码定义见:…

问题描述

摩尔斯电码破译。类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文。请不要使用"zylib.h",只能使用标准库函数。用' * '表示' . ',中间空格用' | '表示,只转化字符表。

摩尔斯码定义见:http://baike.baidu.com/view/84585.htm?fromId=253988。

1c3b5ad6950749aea50d382d516e6694.jpg

提示

清橙进行评测时,输入是以EOF结尾的,而不是换行符。(EOF不是一个字符,“以EOF结尾”是一种通俗但不严谨的说法。)因此可以通过以下方式之一获取输入:

1. 一次读入整行字符串,再进行后续解析。

2. 使用getchar或scanf一次读入一个字符,通过它们的返回值判断输入结束。

样例输出

37351a6043b1410384275742c4cd3ba9.jpg

思路:先用二维数组存储摩尔斯电码,再将接收到的电码与之比较,用ACSII码处理更方便

编译器上没有什么问题,但是测试不通过,不知道为什么,也许和循环输入有关,EOF

#include #include #include int main( )

{

char ch[26][5];

strcpy(ch[0],"*-");

strcpy(ch[1],"-***");

strcpy(ch[2],"-*-*");

strcpy(ch[3],"-**");

strcpy(ch[4],"*");

strcpy(ch[5],"**-*");

strcpy(ch[6],"--*");

strcpy(ch[7],"****");

strcpy(ch[8],"**");

strcpy(ch[9],"*---");

strcpy(ch[10],"-*-");

strcpy(ch[11],"*-**");

strcpy(ch[12],"--");

strcpy(ch[13],"-*");

strcpy(ch[14],"---");

strcpy(ch[15],"*--*");

strcpy(ch[16],"--*-");

strcpy(ch[17],"*-*");

strcpy(ch[18],"***");

strcpy(ch[19],"-");

strcpy(ch[20],"**-");

strcpy(ch[21],"***-");

strcpy(ch[22],"*--");

strcpy(ch[23],"-**-");

strcpy(ch[24],"-*--");

strcpy(ch[25],"--**");

int i=0;

char c;

char str[5];

while(scanf("%c",&c)!=EOF)

{

if(c=='|'||c=='\n')

{

str[i]='\0';

for(int j=0;j<26;j++)

{

if(strlen(str)==strlen(ch[j]))

if(!strncmp(str,ch[j],strlen(ch[j])))

{

printf("%c",j+'a');

break;

}

}

i=0;

continue;

}

str[i++]=c;

}

return 0;

}

测试通过

#include #include #include int main( )

{

//将摩尔斯电码存入二维数组

char ch[26][5];

strcpy(ch[0],"*-");

strcpy(ch[1],"-***");

strcpy(ch[2],"-*-*");

strcpy(ch[3],"-**");

strcpy(ch[4],"*");

strcpy(ch[5],"**-*");

strcpy(ch[6],"--*");

strcpy(ch[7],"****");

strcpy(ch[8],"**");

strcpy(ch[9],"*---");

strcpy(ch[10],"-*-");

strcpy(ch[11],"*-**");

strcpy(ch[12],"--");

strcpy(ch[13],"-*");

strcpy(ch[14],"---");

strcpy(ch[15],"*--*");

strcpy(ch[16],"--*-");

strcpy(ch[17],"*-*");

strcpy(ch[18],"***");

strcpy(ch[19],"-");

strcpy(ch[20],"**-");

strcpy(ch[21],"***-");

strcpy(ch[22],"*--");

strcpy(ch[23],"-**-");

strcpy(ch[24],"-*--");

strcpy(ch[25],"--**");

int I,j,k=0;

char str[1000];

char code[5];

scanf("%s",str);//输入摩尔斯电码

for(i=0;i<=strlen(str);i++)//遍历str,长度为 strlen(str)

{

code[k++]=str[i];//单个码单独处理

if(str[i]=='|'||str[i]=='\0')

{

code[k-1]='\0';//'\0'字符串结束标志,k-1表示覆盖掉'|'

for(j=0;j<26;j++)

{

if(strlen(code)==strlen(ch[j]))//码长度相等

{

if(!strncmp(code,ch[j],strlen(ch[j])))//码字符相同 ,strncmp()是字符串比较函数

{

printf("%c",j+'a');//ASCII码,字符'a'加一个整数,则偏移为对应字符

break;//结束当层循环

}

}

}

k=0;

}

}

return 0;

}