1

My program is accepting user input and then taking the first word inputted and comparing it to an array of accepted commands. What would be the best way to compare the first word inputted (after it has been tokenized) to an array of strings?

Example:

comparing the string "pwd" to an array containging {"wait", "pwd", "cd", "exit"}

Thanks in advance for your help!

4

1 に答える 1

3

私は次のようなことをします:

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見つからない場合は戻ります。
注:オーバーフローなどの脆弱性があるため、このコードを使用する前に修正してください。これにより、何をすべきかがわかりますが、適切なコードではありません。

于 2013-09-14T22:08:52.513 に答える