对于某些上下文,我的游戏在终端中运行,就像命令行类型的游戏。目前处理命令是为每个命令执行一个 strcmp() ,这既不美观也不高效。正因为如此,我决定我应该重做一次。我尝试查看其他帖子,但没有发现任何有用的信息。我正在寻找的是它保存命令的每个部分。 例如:
//let's just say command = "debug test"
char part1;
char part2;
split via " "
part1 = "debug"
part2 = "test"
我尝试使用
sscanf()
,但它只会切断绳子。例如,假设我给了它字符串“test”。
它将输出:
test -> est -> st //and so on
这是使用 strtok 的最小解决方案:
#include <stdio.h>
#include <string.h>
#define DELIM " "
int main() {
char command[] = "debug test";
char *part1 = strtok(command, DELIM);
char *part2 = strtok(NULL, DELIM);
printf("part=%s part2=%s\n", part1, part2);
}
和示例输出:
part=debug part2=test