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