使用C语言编制一个程序,定义一个函数,返回一个字符串中的字母个数和非字母个数(只考虑英文字母、数字和标点符号), 要求用指针作为参数。
时间: 2024-01-24 11:17:15 浏览: 32
下面是一个可能的解决方案:
```c
#include <stdio.h>
#include <ctype.h>
void count_chars(const char *str, int *letter_count, int *non_letter_count) {
*letter_count = 0;
*non_letter_count = 0;
while (*str) {
if (isalnum(*str) || ispunct(*str)) {
if (isalpha(*str)) {
(*letter_count)++;
} else {
(*non_letter_count)++;
}
}
str++;
}
}
int main(void) {
char str[] = "Hello, world! 123";
int letter_count, non_letter_count;
count_chars(str, &letter_count, &non_letter_count);
printf("Letter count: %d\n", letter_count);
printf("Non-letter count: %d\n", non_letter_count);
return 0;
}
```
该程序定义了一个 `count_chars` 函数,它接受一个字符串指针和两个整型指针作为参数。函数通过遍历字符串中的每个字符,判断它是否为英文字母、数字或标点符号,然后分别累加字母和非字母的个数。最后,通过指针返回计数结果。
在 `main` 函数中,我们声明了一个字符串 `str`,并将其传递给 `count_chars` 函数。我们还声明了两个整型变量 `letter_count` 和 `non_letter_count`,它们将用于存储函数计算出的字母和非字母个数。最后,我们使用 `printf` 函数输出计数结果。