C 基于命令行参数将值设置为true或false

C 基于命令行参数将值设置为true或false,c,C,我陷入了一个非常棘手的境地。我必须根据命令行上的参数将布尔值设置为true或false。我必须提供一个参数,-ds=rel,根据这个值,程序将其设置为true和false。我用过 if (strncmp(argv[argc_pnt], "draw", 4) == 0) { rel = true; } 现在我希望如果我在命令行中给出-ds=draw,它应该设置rel=true。也就是说,它应该比较等于(=)后的值,如果它被绘制,它应该使其为真。否则,如果我在-ds=之后给出任何其他值,则

我陷入了一个非常棘手的境地。我必须根据命令行上的参数将布尔值设置为true或false。我必须提供一个参数,
-ds=rel
,根据这个值,程序将其设置为true和false。我用过

if (strncmp(argv[argc_pnt], "draw", 4) == 0)
{
    rel = true;
}

现在我希望如果我在命令行中给出
-ds=draw
,它应该设置rel=true。也就是说,它应该比较等于(=)后的值,如果它被绘制,它应该使其为真。否则,如果我在
-ds=
之后给出任何其他值,则rel值应为false。

类似于
rel=!strcmp(引数,“抽签”)

(请注意,我在问题中使用了
true
false
,但它们通常不是用C定义的。您可能希望为它们包含
stdbool.h
,或者创建自己的布尔值
enum
static const char DS_ARG[] = "-ds=";
rel = false;

// …

if (strncmp(argv[i], DS_ARG, sizeof(DS_ARG) - 1) == 0) {
    // argv[i] begins with "-ds="
    if (strcmp(argv[i] + sizeof(DS_ARG) - 1, "draw") == 0) {
        // "-ds=" is followed by "draw"
        rel = true;
    } 
}