我正在尝试在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
}
答案 0 :(得分:5)
您无法在C中执行此操作:该语言不支持重载或默认参数。您可以做的唯一一件事就是使用可变数量的参数,但这在这里不起作用,因为您需要传递一个额外的参数来指示被搜索项目的类型。
更好的方法是定义两个函数
int indexOfChar(char *text, char letter)
int indexOfWord(char *text, char *wors)
答案 1 :(得分:4)
C中没有默认函数参数.C ++具有该功能,但不具有C。
在您的情况下,我会定义两个函数,而不是一个indexOf
:indexOfWord
和indexOfChar
。