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 中这样做:该语言不支持重载或默认参数。唯一可以模拟这一点的是使用可变数量的参数,但这在这里不起作用,因为您需要传递一个额外的参数来指示正在搜索的项目的类型。

更好的方法是定义两个函数

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

或者更好的是,使用标准库中的相应函数 -strchrstrstr.

于 2013-04-22T17:39:04.813 回答
4

C中没有默认函数参数之类的东西。C++有这个特性,但C没有。

在您的情况下,我将定义两个函数而不是一个indexOf:indexOfWordindexOfChar.

于 2013-04-22T17:38:53.127 回答