将单个字符串与C中的字符串数组进行比较

时间:2013-09-14 21:56:26

标签: c arrays string strncmp

我的程序正在接受用户输入,然后输入输入的第一个单词并将其与接受的命令数组进行比较。将输入的第一个单词(在被标记化之后)与字符串数组进行比较的最佳方法是什么?

示例:

将字符串"pwd"与包含{"wait", "pwd", "cd", "exit"}

的数组进行比较

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

我会做以下事情:

int string_in(const char* string, const char** strings, size_t strings_num) {
    for (size_t i = 0; i < strings_num; i++) {
        if (!strcmp(string, strings[i])) {
            return i;
        }
    }
    return -1;
}

检查数组中的每个字符串,如果它返回索引则相同。如果找不到则返回-1 注意:容易出现溢出等问题,请在尝试使用此代码之前修复它们。这将让您了解该做什么,但不是很好的代码。