1

CでindexOf関数を作成しようとしています。関数は、パラメーターで指定された文字または単語の位置を見つける必要があります。しかし、それらを使用しようとすると、コンパイラは「引数が少なすぎます」と警告しました。どうやってやるの?ありがとう。

#include<stdio.h>
#include<conio.h>
#include<string.h>

int indexOf(char*, char*, char);

int main(){
    char stuff[] = "abcdefghijklmopqrstuvwxyz";

    printf("Result: %d", indexOf(stuff, 'b') );
    printf("Result: %d", indexOf(stuff, "defg") );

    getch();
    return 0;
}

int indexOf(char *text, char *word, char letter){
    if(word == DEFAULT VALUE)
        // find the letter in the text
    else if(letter == DEFAULT VALUE)
        // find the word in the text
}
4

2 に答える 2

5

C ではそれを行うことはできません。言語はオーバーロードやデフォルト パラメータをサポートしていません。これをエミュレートするためにできる唯一のことは、可変数のパラメーターを使用することですが、検索対象のアイテムのタイプを示す追加のパラメーターを渡す必要があるため、ここでは機能しません。

より良いアプローチは、2 つの関数を定義することです。

int indexOfChar(char *text, char letter)
int indexOfWord(char *text, char *wors)

さらに良いことに、標準ライブラリの対応する関数を使用します -strchrstrstr.

于 2013-04-22T17:39:04.813 に答える
4

C にはデフォルトの関数パラメーターなどはありません。C++ には機能がありますが、C にはありません。

あなたの場合、私は 1 つではなく 2 つの関数を定義しますindexOf:indexOfWordindexOfChar.

于 2013-04-22T17:38:53.127 に答える