受信-IM-MSG信号メッセージ
-
13-10-2019 - |
質問
異なるプロトコルでいくつかのIDでログに記録し、メッセージを受信し、異なるメッセージ(コマンド)への回答を提供するプログラムを作成したいと思います。
例:
自分: 誰
ボット: 私は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.
なぜこのことが起こるのかという考えはありますか?私は何が間違っていましたか?
ありがとう、そして私の悪い英語をごめんなさい。
解決
使用する必要があります strcmp
働き:
if (strcmp(message, "who") == 0) {
answer="I'm a libpurple powered bot.";
} else if (strcmp(message, "hello") == 0) {
==
ポインターが同じアドレスを保持していることを確認しますが、これはあなたが望むものではありません。
所属していません StackOverflow