接收到IM-MSG信号消息
-
13-10-2019 - |
题
我想制作一个程序,该程序在不同协议上登录几个ID,接收消息并为不同消息(命令)提供答案。
例子:
我: 谁
bot: 我是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:谁.
您是否知道为什么这件事会发生?我做错了什么?
谢谢,对不起,我的英语不好。
解决方案
您需要使用 strcmp
功能:
if (strcmp(message, "who") == 0) {
answer="I'm a libpurple powered bot.";
} else if (strcmp(message, "hello") == 0) {
==
检查指针是否拥有相同的地址,这不是您想要的。
不隶属于 StackOverflow