Pregunta

Quiero hacer un programa que en unos registros de identificadores en diferentes protocolos, recibe los mensajes y se proporcionan respuestas a diferentes mensajes (comandos).

ejemplo:

: que
bot:. Soy un robot accionado libpurple

Los código es el siguiente:

static void received_im_msg(PurpleAccount *account, char *sender, char *message,
                              PurpleConversation *conv, PurpleMessageFlags flags)
{
    if (conv==NULL) {
        conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, sender);
    }

    printf("%s: %s\n", sender, message);

    char *answer;

    if (message == "who") {
        answer="I'm a libpurple powered bot.";
    } else if (message=="hello") {
        answer="Hello, my firend!";
    } else {
        answer="Unknown command.";
    }
    //print the answer, so we can see it in terminal:
    printf("bot: %s\n",message);  

    //send the message:
    purple_conv_im_send(purple_conversation_get_im_data(conv),answer);
}

Para mí, este código se ve bien, pero no funciona como se esperaba. Cualquier mensaje que el robot recibe, la respuesta será siempre Comando desconocido. . No puedo entender por qué el

message == "who"

No es cierto, incluso si

printf("%s: %s\n", sender, message);

imprime algo como:
example_id_345:. Que

¿Tiene alguna idea de por qué esto sucede? Lo que hice mal?

Gracias y lo siento por mi mala Inglés.

¿Fue útil?

Solución

scroll top