比较 argv[1][i] 数组 C++ [关闭]

Posted

技术标签:

【中文标题】比较 argv[1][i] 数组 C++ [关闭]【英文标题】:compare argv[1][i] arrays C++ [closed] 【发布时间】:2013-04-09 08:50:02 【问题描述】:

我需要比较参数中的数组

有人能告诉我为什么这部分代码是错误的


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

谢谢.....

【问题讨论】:

可怕的格式,你甚至不解释“错误”是什么或做什么。 argv的类型是什么?那么 argv[3][i] 的类型是什么? strcmp 期待什么类型? argv[3][i] 是字符串 argv[3] 中的一个数组,所以就像 kingsindian 说它不应该工作,但有没有其他方法 【参考方案1】:
if(strcmp((argv[3][i]),"c")==0)

这一行是错误的。

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

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

【讨论】:

也试过了,但没用 当你尝试你所说的“它说操作数类型不兼容”时 @AshFernando:您是否完全按照此处显示的方式进行了尝试,'c' 用单引号表示字符文字,而不是 "c" 用双引号表示字符串文字? (我假设argv 具有作为main 的第二个参数传递的字符串数组的传统含义;如果是别的东西,那么你需要告诉我们它是什么)。 对不起,我用双引号和单引号一起工作,非常感谢【参考方案2】:

我希望这是你想尝试的。

for(int i=0;i<strlen(argv[3]);i++)

if(argv[3][i]=='c')
   
     cout<<"\n found c";

    

【讨论】:

strcmp 比较字符串,而不是字符。您希望== 比较字符。 修正比较...

以上是关于比较 argv[1][i] 数组 C++ [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中找到数组的最小元素? [关闭]

在c ++中填充数组[关闭]

c++ parse argv

argc atoi argv,Opencv,C++ [关闭]

C++ 对对象数组的访问冲突

c++ 动态分配二维数组 new 二维数组