首页 > 解决方案 > 有条件的 strtok()?

问题描述

我正在尝试使用 strtok() 将输入分成五个部分,每个部分用冒号分隔

ab:c:X:cf:b

但是,用户也可以选择不为输入的某些部分输入任何内容

f::V:pq:

有没有办法使用 strtok 来解​​决这个问题?到目前为止,这是我的代码,但它没有按预期工作。

        piece = strtok(action_def, ":");
        if (piece!=NULL) {
            execute
        }
        piece = strtok(NULL, ":");
        if (piece!=NULL) {
            execute
        }
        piece = strtok(NULL, ":");
        action_list[action_n]->name = *piece;
        piece = strtok(NULL, ":");
        if (piece!=NULL) {
            execute
        }
        // last char recorded by fgets is '\n'
        piece = strtok(NULL, "\n");
        if (piece!=NULL) {
            execute
        }

标签: cinputstrtok

解决方案


推荐阅读