2014-02-24 32 views
2

如果第一個參數==「 - 」的第一個字符則輸入if語句。我得到的錯誤是「傳遞'strcmp'的參數1使得整型指針沒有投射」我也嘗試過使用fgetc,寫得有點不同,但仍然得到這個錯誤。如果我投了它,我會得到一個核心轉儲。 如果參數包含一個破折號它之後將相同的參數內的數字,所以我不能只是看的argv [1]爲單個字符,如果我能的條件將是簡單的:if (strcmp(argv[1], "-")==0)C-檢查第一個命令行參數中的第一個字符是否包含特定的字符

功能

int main (int argc, const char *argv[]){ 
    const char *test = argv[1]; 
    if (strcmp(test[0],"-")==0) 
     { 
      printf("saw there was a dash"); 
     } 
    return 0;} 

謝謝您的幫助

+0

如果您使用的是* nix(包括Linux和Mac OS X)系統,那麼您最好使用['getopt(3)'](http://www.gnu.org/software/libc/manual /html_node/Example-of-Getopt.html#Example-of-Getopt) – nodakai

回答

6

strcmp()是比較字符串,也就是空值終止char陣列。但是,在這裏你比較兩個char,這會做:

if (test[0] == '-') 

注單引號中'-',這是一個char文字。

+0

哦,當然,謝謝。一旦時間允許,我會選擇答案作爲可接受的答案。 – JRX

相關問題