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("%i\n",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] != '\0'; 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 %d\n", 42);
// ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^
// function const char * int