比较 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++ [关闭]的主要内容,如果未能解决你的问题,请参考以下文章