使用C语言编制一个程序,定义一个函数,返回一个字符串中的字母个数和非字母个数(只考虑英文字母、数字和标点符号),要求用指针作为参数。
时间: 2024-01-22 07:18:11 浏览: 30
以下是使用C语言编写的程序,实现返回一个字符串中字母个数和非字母个数的功能:
```c
#include <stdio.h>
#include <ctype.h>
void count_letters_nonletters(char *str, int *letters, int *nonletters) {
while (*str != '\0') {
if (isalpha(*str)) {
(*letters)++;
} else if (isdigit(*str) || ispunct(*str)) {
(*nonletters)++;
}
str++;
}
}
int main() {
char str[] = "Hello, World! 123";
int letters = 0, nonletters = 0;
count_letters_nonletters(str, &letters, &nonletters);
printf("Letters: %d, Non-letters: %d\n", letters, nonletters);
return 0;
}
```
在这个程序中,我们定义了一个名为`count_letters_nonletters`的函数,该函数接受一个字符串指针和两个整数指针作为参数。在函数中,我们使用了一个`while`循环遍历字符串中的每个字符,如果字符是字母,则将字母计数器增加1;如果字符是数字或标点符号,则将非字母计数器增加1。最后,我们将字母计数器和非字母计数器的值存储在传递给函数的整数指针变量中。
在`main`函数中,我们定义了一个字符串`str`,并初始化字母计数器和非字母计数器为0。然后,我们调用`count_letters_nonletters`函数,并将字符串和字母计数器和非字母计数器的指针作为参数传递给函数。最后,我们打印出字母计数器和非字母计数器的值。