C 中的文本到摩尔斯电码
Text to Morse code in C
我有一个函数可以将用户输入的文本(它也可以翻译数字)翻译成摩尔斯电码,但是我不明白为什么包含 莫尔斯 中的字母表的数组代码:m [37] [10]是二维数组?我理解的37是由字母、数字和白色space的数量组成,共37个,但为什么是10个呢?
这是我的代码:
void textoMorse(){
int i,j;
char texto[37] = {
'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', ' '
};
char m[37][10]={
{".-,"}, {"-...,"}, {"-.-.,"}, {"-..,"}, {".,"}, {"..-.,"},
{"--.,"}, {"....,"}, {"..,"}, {".---,"}, {"-.-,"}, {".-..,"},
{"--,"}, {"-.,"}, {"---,"}, {".--.,"}, {"--.-,"}, {".-.,"},
{"...,"}, {"-,"}, {"..-,"}, {"...-,"}, {".--,"}, {"-..-,"},
{"-.--,"}, {"--..,"}, {".----,"}, {"..---,"}, {"...--,"},
{"....-,"}, {".....,"}, {"-....,"}, {"--...,"}, {"---..,"},
{"---.,"}, {"-----,"}, {"//"}
};
char frase[1000];
gets(frase);
fflush(stdin);
for(i=0; frase!='[=10=]'; i++){
for(j=0; j<37; j++){
if(frase[i] == texto[j]){
printf("%s",m[j]);
}
}
}
}
m
是一个二维数组。将其想象成有 37 行,每行有 10 个字符。 C 字符串在每一行中进行编码,并以您看不到的 [=11=]
字符隐式终止。例如,{".....,"}
行包含 5 个 '.'
个字符、1 个 '.'
个字符和一个 '[=15=]'
个终止字符。该行剩余的 3 个字节默认填充为 '[=15=]'
个字符。
我有一个函数可以将用户输入的文本(它也可以翻译数字)翻译成摩尔斯电码,但是我不明白为什么包含 莫尔斯 中的字母表的数组代码:m [37] [10]是二维数组?我理解的37是由字母、数字和白色space的数量组成,共37个,但为什么是10个呢?
这是我的代码:
void textoMorse(){
int i,j;
char texto[37] = {
'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', ' '
};
char m[37][10]={
{".-,"}, {"-...,"}, {"-.-.,"}, {"-..,"}, {".,"}, {"..-.,"},
{"--.,"}, {"....,"}, {"..,"}, {".---,"}, {"-.-,"}, {".-..,"},
{"--,"}, {"-.,"}, {"---,"}, {".--.,"}, {"--.-,"}, {".-.,"},
{"...,"}, {"-,"}, {"..-,"}, {"...-,"}, {".--,"}, {"-..-,"},
{"-.--,"}, {"--..,"}, {".----,"}, {"..---,"}, {"...--,"},
{"....-,"}, {".....,"}, {"-....,"}, {"--...,"}, {"---..,"},
{"---.,"}, {"-----,"}, {"//"}
};
char frase[1000];
gets(frase);
fflush(stdin);
for(i=0; frase!='[=10=]'; i++){
for(j=0; j<37; j++){
if(frase[i] == texto[j]){
printf("%s",m[j]);
}
}
}
}
m
是一个二维数组。将其想象成有 37 行,每行有 10 个字符。 C 字符串在每一行中进行编码,并以您看不到的 [=11=]
字符隐式终止。例如,{".....,"}
行包含 5 个 '.'
个字符、1 个 '.'
个字符和一个 '[=15=]'
个终止字符。该行剩余的 3 个字节默认填充为 '[=15=]'
个字符。