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これで、2 つの添え字演算子を使用して、文字の配列の配列として扱うことができます。

もちろん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 に答える