-Error:下标值既不是数组也不是指针,也不是向量

时间:2013-11-10 10:28:12

标签: c

我必须找到其中具有特定字符的单词数量,我从参数中得到的结果。我必须使用一般意见。我做了一个功能,但它不起作用。我不知道如何正确使用参数。

void function(char *argv) {
   char x;
   int c,i;
   x = argv[1][0] ;
   i = 0;
   while((c = getchar()) != EOF) {
      if(c == x)
         ++i;
   }
   printf("%d \n",i);
}

1 个答案:

答案 0 :(得分:3)

假设argv与传递给main的内容相同,则您的函数声明不正确:它必须是

void function(char *argv[]) {
    ... //              ↑↑
}

现在,您可以将argv视为一个包含两个下标运算符的字符数组数组。

当然,因为除了第一个参数的第一个字符之外你没有使用argv的任何部分,你也可以接受一个char,然后让调用者决定它会使用哪个`char是:

void function(char x) {
    ...
}
...
int main(int argc, char *argv[]) {
    ... // Check argc...
    function(argv[1][0]);
}