这是我的代码。我正在尝试进行字符串比较。串行输入读取按下的键并将 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”,那么这两个 printf 语句会打印相同的内容。
printf(cmdStructArray[0].cmd);
printf("%s", cmd.command);
如何使字符串比较起作用?