2013-04-09 40 views
-10

我需要一個參數來比較陣列比較的argv [1] [I]數組C++

一些能告訴我,爲什麼這部分代碼是錯誤的

{ 
for(int i=0;i<strlen(argv[3]);i++) 
    if(strcmp((argv[3][i]),"c")==0){ 
     cout<<"C"<<endl; 
     return (0); 
    } 

感謝.....

+2

不客氣。 – DevSolar 2013-04-09 08:51:01

+0

可怕的格式化,你甚至沒有解釋什麼是「錯誤」或是什麼。 – Marlon 2013-04-09 08:51:14

+0

argv的類型是什麼?那麼argv [3] [i]的類型是什麼? strcmp期待什麼類型? – 2013-04-09 08:52:45

回答

3
if(strcmp((argv[3][i]),"c")==0) 

這條線是錯誤的。

argv [3] [i]是一個字符,而不是一個字符串。你可能想要:

if(argv[3][i]=='c') 
+0

嘗試過,但也沒有工作 – 2013-04-09 08:56:40

+0

當試過你說什麼「它說操作數類型是不兼容的「 – 2013-04-09 09:10:19

+0

@AshFernando:你是否嘗試完全按照它出現在這裏,''c''用單引號表示字符文字,而不是''c」'用雙引號表示字符串文字? (我假設'argv'具有作爲main的第二個參數傳遞的字符串數組的常規含義;如果它是別的東西,那麼你需要告訴我們它是什麼)。 – 2013-04-09 09:14:09

1

我希望這是你想嘗試。

for(int i=0;i<strlen(argv[3]);i++) 
{ 
if(argv[3][i]=='c') 
    { 
    cout<<"\n found c"; 

    } 
} 
+0

ya但它不會運行 – 2013-04-09 09:06:16

+1

'strcmp'比較了字符串,而不是字符。你想'=='來比較字符。 – 2013-04-09 09:14:57

+0

更正了比較... – shivakumar 2013-04-09 09:29:39