用函数void fun(const char *str, int* char_N, int* letter_N);编写一个C语言程序,输入一个字符串,输出其中数字字符个数及字母字符个数。
时间: 2024-02-25 10:55:39 浏览: 70
好的,下面是实现该函数的代码:
```c
void fun(const char *str, int* char_N, int* letter_N)
{
*char_N = 0;
*letter_N = 0;
char c;
while((c = *str++) != '\0')
{
if(c >= '0' && c <= '9')
(*char_N)++;
else if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
(*letter_N)++;
}
}
```
该函数的输入参数为一个字符串指针 `str`,输出参数为指向整数类型的指针 `char_N` 和 `letter_N`,分别用于存储数字字符个数和字母字符个数。
在函数内部,首先将 `char_N` 和 `letter_N` 初始化为零。然后遍历字符串,对于每个字符,如果它是数字字符,则将 `char_N` 加一;如果它是字母字符,则将 `letter_N` 加一。最后函数返回时,`char_N` 和 `letter_N` 中存储的就是字符串中数字字符和字母字符的个数了。
调用该函数的方法如下:
```c
int main()
{
char str[100];
int char_N, letter_N;
printf("请输入一个字符串:");
scanf("%s", str);
fun(str, &char_N, &letter_N);
printf("数字字符个数:%d\n", char_N);
printf("字母字符个数:%d\n", letter_N);
return 0;
}
```
在该例子中,我们首先定义了一个字符串数组 `str`,以及两个整数变量 `char_N` 和 `letter_N`。然后通过 `scanf` 函数从键盘输入一个字符串,并将其存储到 `str` 中。接着调用函数 `fun`,统计字符串中数字字符和字母字符的个数。最后输出统计结果。
注意,在调用函数 `fun` 时,需要将 `char_N` 和 `letter_N` 的地址作为参数传入函数,因为在函数内部需要修改它们的值。
阅读全文