使用C语言编制一个程序,定义一个函数,返回一个字符串中的字母个数和非字母个数 (只考虑英文字母、数字和标点符号)要求用指针作为参数。
时间: 2024-01-22 14:21:13 浏览: 64
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <ctype.h>
void count_letters(char *str, int *letters, int *non_letters) {
*letters = 0;
*non_letters = 0;
while (*str != '\0') {
if (isalpha(*str)) {
(*letters)++;
}
else if (isdigit(*str) || ispunct(*str)) {
(*non_letters)++;
}
str++;
}
}
int main() {
char str[] = "Hello, world! 123";
int letters, non_letters;
count_letters(str, &letters, &non_letters);
printf("Letters: %d\nNon-letters: %d", letters, non_letters);
return 0;
}
```
在该程序中,`count_letters`函数接收一个指向字符串的指针`str`以及两个整型指针`letters`和`non_letters`。该函数遍历字符串,对于每个字符,如果它是字母,则将`letters`计数器加1;否则如果它是数字或标点符号,则将`non_letters`计数器加1。最后,`letters`和`non_letters`的值通过指针返回给调用该函数的主函数。
在主函数中,我们定义了一个字符串`str`,并将其传递给`count_letters`函数。函数返回的字母个数和非字母个数存储在`letters`和`non_letters`变量中,并通过`printf`函数输出。
阅读全文