使用C语言编制一个程序,定义一个函数,返回一个字符串中的字母个数和非字母个数 (只考虑英文字母、数字和标点符号)要求用指针作为参数。
时间: 2024-01-22 18:20:57 浏览: 71
以下是一个示例程序,实现了输入一个字符串后,计算其中字母和非字母的个数,并将结果通过指针返回:
```c
#include <stdio.h>
#include <ctype.h>
void count_chars(char *str, int *alphabets, int *non_alphabets) {
*alphabets = *non_alphabets = 0; // 初始化计数器
while (*str != '\0') {
if (isalpha(*str))
(*alphabets)++; // 如果是字母,字母计数器加1
else if (!isspace(*str))
(*non_alphabets)++; // 如果不是空格,也不是字母,则是非字母字符,非字母计数器加1
str++; // 指针后移
}
}
int main() {
char str[100];
int alphabets, non_alphabets;
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin); // 从标准输入中读取字符串
count_chars(str, &alphabets, &non_alphabets); // 调用计数函数
printf("字母个数:%d,非字母个数:%d\n", alphabets, non_alphabets);
return 0;
}
```
注意,这里使用了 `isalpha()` 和 `isspace()` 函数来判断字符是否为字母和空格。需要在代码中包含头文件 `<ctype.h>` 才能使用这些函数。另外,使用 `fgets()` 函数可以从标准输入中读取一行字符串,避免了使用 `gets()` 函数可能带来的安全问题。
阅读全文