是否有可能在C中使函数采用两种不同的数据类型的变量作为参数?


int count_letters(string text, int length);
int count_words(string text);
int count_sentences(string text);
void final(int letters, int words, int sentences);
int main(void)
{
string text = get_string("Text: n");
int length = strlen(text);
//printf("%in",length);
int letters = count_letters(text, length);

这里我需要变量"length"在这四个函数中但是所有这些函数都有一个字符串类型的参数。有可能在一个函数中传递不同类型的参数吗?

基本上我想知道这是否正确(第1行和第13行),如果不是,那么我怎么能在所有这些函数中使用这个长度变量,而不必在每个函数中局部定义它?

C字符串以空字符结尾。您不需要将字符串的长度传递给函数。你需要迭代,直到你到达这个字符

的例子:

int count_letters(string text)  //better to return size_t
{
int result = 0;
for(int index = 0; text[index] != ''; index++) 
{
if(isalpha((unsigned char)text[index]))
{
result += 1;
}    
}
return result;
}

当然有可能。你已经做过了:

int count_letters(string text, int length);

count_letters有一个string参数称为text,int参数称为length

我相信你已经知道一些函数允许这样做:

printf("the magic number is %dn", 42);
//   ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^
// function      const char *           int

最新更新