如何在符号中定义变量char?

how to define a variable char in symbols?

我正在使用 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;
}

@Barmar 告诉你的是正确的:

char a[] = ".-";`

您还告诉我们您正在尝试定义从字母到摩尔斯电码的映射。这可能是使用 structlookup 函数来查找每个字母:

#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 *) "-..." },
        // ...
        { '[=11=]', NULL }
    };
    printf("%c => %s\n", 'A', lookup(m, 'A'));
}

一旦您获得更多经验,您可以将 lookup() 函数替换为 lfind() 或者如果地图按字母排序 bsearch().