0

我必须找到其中具有特定字符的单词的数量,我从论点中得到什么。我必须处理一般输入。我做了一个函数,但它不起作用。我不知道如何正确处理参数。

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);
}
4

1 回答 1

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]);
}
于 2013-11-10T10:30:34.940 回答