これが私が持っているコードです。文字列の比較をしようとしています。シリアル入力は、押されたキーを読み取り、cmd.commandをキーボードで入力されたものに設定します。次に、それを取得して文字列比較を行い、リスト内にあるコマンドかどうかを確認します。私がこだわっているのは文字列の比較です。
typedef struct {
const char *cmd;
void (*cmdFuncPtr)(void);
}CmdStruct;
typedef struct {
char command[16];
char argument[16];
} Command;
Command cmd;
CmdStruct cmdStructArray[] = { {"led", LEDHandler },
{"relay", RelayFunction }, };
void ProcessCommand() {
for (j = 0; j < sizeof(cmdStructArray)/sizeof(cmdStructArray[0]); j++) {
if(strcmp(cmdStructArray[j].cmd, cmd.command) == 0) {
// do stuff
}
}
}
「led」と入力すると、これら2つのprintfステートメントは同じものを出力します。
printf(cmdStructArray[0].cmd);
printf("%s", cmd.command);
文字列の比較を機能させるにはどうすればよいですか?