c语言摩斯密码转换
一、需求分析
1、输入一个以普通字母构成的字符串;
2、将输入的字符串转换成摩斯密码;
3、输出转换的摩斯密码;
二、流程设计
1、将读入的字符转换成16进制;
2、转换成二进制数;
3、根据'摩斯密码对照表'将二进制转换成摩斯密码;
4、输出摩斯密码;
三、函数设计
1、将读入的字符转换成16进制;
int hex(char s)
{
switch(s)
{
case 'A': return 10; // A-->10
case 'B': return 11; // B-->11
case 'C': return 12; // C-->12
case 'D': return 13; // D-->13
case 'E': return 14; // E-->14
case 'F': return 15; // F-->15
default: return s-'0'; //0-9-->0-9
}
}
2、转换成二进制数;
void change(int a[],int b[]) // 16进制转换成2进制
{
tint i;
tfor(i=0;i<4;i++)
t{
ttswitch(a[i])
tt{
tttcase 0: b[i*4]=0;b[i*4+1]=0;b[i*4+2]=0;b[i*4+3]=0;break;
tttcase 1: b[i*4]=0;b[i*4+1]=0;b[i*4+2]=0;b[i*4+3]=1;break;
tttcase 2: b[i*4]=0;b[i*4+1]=0;b[i*4+2]=1;b[i*4+3]=0;break;
tttcase 3: b[i*4]=0;b[i*4+1]=0;b[i*4+2]=1;b[i*4+3]=1;break;
tttcase 4: b[i*4]=0;b[i*4+1]=1;b[i*4+2]=0;b[i*4+3]=0;break;
tttcase 5: b[i*4]=0;b[i*4+1]=1;b[i*4+2]=0;b[i*4+3]=1;break;
tttcase 6: b[i*4]=0;b[i*4+1]=1;b[i*4+2]=1;b[i*4+3]=0;break;
tttcase 7: b[i*4]=0;b[i*4+1]=1;b[i*4+2]=1;b[i*4+3]=1;break;
tttcase 8: b[i*4]=1;b[i*4+1]=0;b[i*4+2]=0;b[i*4+3]=0;break;
tttcase 9: b[i*4]=1;b[i*4+1]=0;b[i*4+2]=0;b[i*4+3]=1;break;
tttcase 10: b[i*4]=1;b[i*4+1]=0;b[i*4+2]=1;b[i*4+3]=0;break;
tttcase 11: b[i*4]=1;b[i*4+1]=0;b[i*4+2]=1;b[i*4+3]=1;break;
tttcase 12: b[i*4]=1;b[i*4+1]=1;b[i*4+2]=0;b[i*4+3]=0;break;
tttcase 13: b[i*4]=1;b[i*4+1]=1;b[i*4+2]=0;b[i*4+3]=1;break;
tttcase 14: b[i*4]=1;b[i*4+1]=1;b[i*4+2]=1;b[i*4+3]=0;break;
tttcase 15: b[i*4]=1;b[i*4+1]=1;b[i*4+2]=1;b[i*4+3]=1;break;
tt}
t}
}
3、根据'摩斯密码对照表'将二进制转换成摩斯密码;
void morse(int b[],char m[]) //2进制转换成摩斯密码
{
tint i;
tfor(i=0;i<16;i++)
t{
ttif(b[i]==0)
tttm[i]='.';
ttelse
tttm[i]='-';
t}
}
四、主函数部分
16进制字符串转16进制数组 int main()
{
tint i;
tchar s[20];
tint a[4];
tint b[16];
tchar m[16];t
tprintf('请输入一个以普通字母构成的字符串:
');
tscanf('%s',s);
tfor(i=0;i<4;i++)
tta[i]=hex(s[i]);
tchange(a,b);
tmorse(b,m);
tprintf('转换成密码:
');
tfor(i=0;i<16;i++)
ttprintf('%c',m[i]);
tprintf('
');
treturn 0;
}。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论