2016-04-24 47 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()' –

相關問題