写一段程序,将c语言unsigned char *cmd与const char *valid_cmd[] = {“adc”, “abc”, “?”};中的数据进行对比,如果不一样返回false
时间: 2024-10-25 17:12:12 浏览: 22
QString含汉字时,完美转char*和unsigned char*
当然可以。在C语言中,你可以创建一个函数来比较`unsigned char *cmd`指向的字符串是否存在于`const char *valid_cmd[]`数组中。这里是一个简单的示例:
```c
#include <stdbool.h>
#include <string.h>
bool is_valid_command(unsigned char *cmd) {
const size_t cmd_count = sizeof(valid_cmd) / sizeof(valid_cmd[0]);
for (size_t i = 0; i < cmd_count; ++i) {
if (strcmp((const char*)cmd, valid_cmd[i]) == 0) {
return true;
}
}
return false; // 如果cmd不是valid_cmd中的任何一个,返回false
}
int main() {
unsigned char cmd[] = "invalid"; // 代替实际获取的命令
bool isValid = is_valid_command(cmd);
if (!isValid) {
printf("The command '%s' is not a valid one.\n", (char*)cmd);
}
return 0;
}
```
在这个例子中,我们首先计算`valid_cmd`数组的元素个数,然后遍历每个有效命令,通过`strcmp`函数比较输入的`cmd`指针所指向的字符串是否与之匹配。如果不匹配,则返回`false`。
阅读全文