我在 c 中作業(我真的是編碼的初學者),我想撰寫一個函式來翻譯我在莫爾斯提示中寫的文本。所以我試圖通過定義我的變數從 elphabet 的字母到相應的莫爾斯電碼,但我總是收到多字符的警告并且不知道如何繼續。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <malloc.h>
//funzione per scrivere codice morse
int main()
{
char a='.-';
printf("%c",a);
return 0;
}
uj5u.com熱心網友回復:
@Barmar 告訴你的是正確的:
char a[] = ".-";`
您還告訴我們您正在嘗試定義從字母到摩爾斯電碼的映射。這可以使用 astruct和一個lookup函式來查找每個字母:
#include <stdio.h>
struct map {
char letter;
char *morse;
};
// return morse string for letter, or NULL if not found
const char *lookup(const struct map *m, const char letter) {
for(unsigned i = 0; m[i].letter; i ) {
if(m[i].letter == letter)
return m[i].morse;
}
return NULL;
}
int main() {
struct map m[] = {
{ 'A', (char *) ".-" },
{ 'B', (char *) "-..." },
// ...
{ '\0', NULL }
};
printf("%c => %s\n", 'A', lookup(m, 'A'));
}
一旦您獲得更多經驗,您可以將lookup()函式替換為lfind()或如果地圖按字母排序bsearch()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/467270.html
