Я хочу создать программу, которая регистрирует несколько идентификаторов по разным протоколам, получает сообщения и дает ответы на разные сообщения (команды).
пример:
я: кто
бот: Я бот, работающий на libpurple.
Код выглядит так:
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);
}
Для меня этот код выглядит нормально, но работает не так, как ожидалось. На любое сообщение, полученное ботом, ответом всегда будет Неизвестная команда. . Я не могу понять, почему
message == "who"
неверно, даже если
printf("%s: %s\n", sender, message);
печатает что-то вроде:
example_id_345: who .
Ты хоть представляешь, почему это происходит? Что я не так сделал?
Спасибо и извините за мой плохой английский.