输入一行文字,统计并输出其中大写字母、小写字母、空格、数字以及其它字符各有多少,要求用c语言指针方法编程实现。
时间: 2024-03-09 09:45:55 浏览: 53
C语言统计字符串中字母、数字、空格和其他字符的个数
好的,我可以帮您解答这个问题。以下是实现代码:
```c
#include <stdio.h>
void count_chars(char *str, int *upper, int *lower, int *space, int *digit, int *other)
{
while (*str != '\0')
{
if (*str >= 'A' && *str <= 'Z')
(*upper)++;
else if (*str >= 'a' && *str <= 'z')
(*lower)++;
else if (*str == ' ')
(*space)++;
else if (*str >= '0' && *str <= '9')
(*digit)++;
else
(*other)++;
str++;
}
}
int main()
{
char str[100];
int upper = 0, lower = 0, space = 0, digit = 0, other = 0;
printf("请输入一行文字:");
fgets(str, 100, stdin);
count_chars(str, &upper, &lower, &space, &digit, &other);
printf("大写字母:%d\n", upper);
printf("小写字母:%d\n", lower);
printf("空格:%d\n", space);
printf("数字:%d\n", digit);
printf("其它字符:%d\n", other);
return 0;
}
```
在这个程序中,我们定义了一个 `count_chars` 函数,它的参数包括输入的字符串以及五个指针,分别用于记录大写字母、小写字母、空格、数字和其它字符的数量。这个函数通过循环遍历字符串中的每一个字符,并根据字符的种类更新对应的指针变量。
在 `main` 函数中,我们首先读入用户输入的字符串,然后调用 `count_chars` 函数来统计各种字符的数量。最后,我们输出统计结果。
注意,我们使用了 `fgets` 函数来读入用户输入的字符串,这是为了避免使用 `scanf` 函数时可能会出现的缓冲区溢出问题。
阅读全文