az[26[5] 是编码表,你要校对一下,我只是快速拍入,给你示意。
程序第一部分是 英文到莫码输出。英文只考虑了小写。
(大写转小写你可以用 -'A'+'a', 下标为
printf("%s",az[s1[0]-'A']);
for (i=1;i
程序第2部分是莫码到英文小写。
#include
#include
char az[26][5]={
"*-","-***","-*-*","-**",
"*","**-*","--*","****",
"**","*---","-*-*","*-**",
"--","-*","---","*--*",
"--*-","*-*","***","-",
"**-","***-","*--","-**-",
"-*--","--**"};
char toA(char *s){
int i;
for (i=0;i<26;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;i
// Part2:
printf("please input ****|*|*-**|*-**|---\n");
scanf("%[^|]",s1);
printf("%c",toA(s1));
while (scanf("|%[^|,'\n']",s1)==1) {
printf("%c",toA(s1));
}
}
/*
程序功能:
在命令行状态下,程序给出提示:“Input MOSE code”
手工输入一串MOSES码,回车后,在下行即显示相应的字串
然后选择“q”或“Q”退出,否则继续
*/
#include
#include
char getmosecod(char *s)
{
char c;
char mater[26][5]={"*-","-***","-*-*","-**","*",
"**-*","--*","****","**","*---",
"-*-","*-**","--","-*","---",,"*--*",
"--*-","*-*","***","-","**-",
"***-","*--","-**-","-*--","--**"};
for(c='a';c<='z';c++)
{
if(strcmp(s,mater[c-'a'])==0)
return c;
}
return 0;
}
main()
{
char str[300],ss[5],*p,*p1;
char c;
do{
printf("Input MOSE code:\n");
gets(str);
p=str;
p1=ss;
do
{
if((*p1=*p)!='|')p1++;
else{
*p1=0;
c=getmosecod(ss);
if(c)putch(c);
p1=ss;
}
}while(*p++);
putch(getmosecod(ss));
printf(" 按Q或q键退出,其他键继续...\n");
c=getch();
}while(c!='q'&&c!='Q');
return 0;
}