2016-04-24 26 views
1

我想读的参数,然后将其与性格比较:检查,如果程序参数等于单个字符

int main (int argc, char *const argv[]) { 
    if (argv[1][1] == 'c') { 
     client(); 
    } 
    else if (argv[1][1] == 's') { 
     server(); 
    } 

    return 0; 
} 

它的工作原理,如果我键入ccdd,如果我键入ccttttt它也适用。这只是采取第二个字符,但我希望它只有当我键入c

+1

'的strcmp(argv的[1], “C”)= = 0' –

回答

1

只要改变的argv [1] [1]〜ARGV [1] [0]和在C记住/ C++所有阵列在 '0' 开始

1

argv[1]是指向第一个命令行参数的指针。

argv[1][1]该论点的特征。

第一个字符是argv[1][0]。 (但是,首先检查argc >= 2,即,实际上有一个命令行参数。)

当然,这仅检查单个字符,所以它不"c""cthulhu"之间进行区分。如果这就是你想如何处理这个争论,那很好,但你可能想考虑一个不同的方法。

+0

甚至不在“c”和“call”之间;) –

+0

谢谢,以及如果我想比较整个字符串,你会建议什么?例如,我想检查,如果我输入“帮助”或其他东西 – mereth

+0

@mereth:'strcmp()' –

相关问题