2013-04-09 232 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