文本到莫尔斯电码在C

我有一个函数,将用户输入的文字(它也翻译数字)转换为莫尔斯电码,但我不明白为什么包含字母表的数组在莫尔斯代码:米[37] [10]是一个二维数组?我了解到37是由字母,数字和空格的数量组成的,总数为37,但为什么是10?文本到莫尔斯电码在C

这是我的代码:

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!='\0'; i++){

for(j=0; j<37; j++){

if(frase[i] == texto[j]){

printf("%s",m[j]);

}

}

}

}

回答:

m是一个二维阵列。把它看成有37行,每行有10个字符。一个C字符串在每行中被编码,并且被一个你看不到的\0字符隐式终止。例如,{".....,"}行包含5个'.'字符,1个'.'字符和一个终止字符。该行中剩余的3个字节默认为'\0'个字符。

以上是 文本到莫尔斯电码在C 的全部内容, 来源链接: utcz.com/qa/266816.html

回到顶部