用指针完成,写一个函数,实现输入一行文字,完成其中大写字母、小写字母、空格和数字的个数统计功能;
时间: 2023-04-19 18:00:04 浏览: 134
输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数
可以使用指针来完成这个函数。函数的参数为一个字符串指针,返回值为一个包含大写字母、小写字母、空格和数字个数的结构体。
具体实现步骤如下:
1. 定义一个结构体,包含四个成员变量,分别表示大写字母、小写字母、空格和数字的个数。
2. 定义一个函数,接收一个字符串指针作为参数,返回一个结构体。
3. 在函数内部,定义四个变量,分别表示大写字母、小写字母、空格和数字的个数,初始值都为0。
4. 使用while循环遍历字符串,判断每个字符的类型,如果是大写字母、小写字母、空格或数字,则对应的计数器加1。
5. 遍历完字符串后,将四个计数器的值分别赋给结构体的成员变量,然后返回结构体。
代码示例:
```
#include <stdio.h>
struct Count {
int upper;
int lower;
int space;
int digit;
};
struct Count count_chars(char *str) {
struct Count count = {0, 0, 0, 0};
while (*str != '\0') {
if (*str >= 'A' && *str <= 'Z') {
count.upper++;
} else if (*str >= 'a' && *str <= 'z') {
count.lower++;
} else if (*str == ' ') {
count.space++;
} else if (*str >= '0' && *str <= '9') {
count.digit++;
}
str++;
}
return count;
}
int main() {
char str[100];
printf("请输入一行文字:");
fgets(str, 100, stdin);
struct Count count = count_chars(str);
printf("大写字母个数:%d\n", count.upper);
printf("小写字母个数:%d\n", count.lower);
printf("空格个数:%d\n", count.space);
printf("数字个数:%d\n", count.digit);
return 0;
}
```
阅读全文