用c语言指针编程实现:输入一行字符串,输出其中大写字母、小写字母、空格、数字以及其他字符的个数。
时间: 2024-05-09 07:16:22 浏览: 135
下面是一个基于指针的C语言程序实现:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int upper = 0, lower = 0, space = 0, digit = 0, other = 0;
printf("Enter a string: ");
fgets(str, 100, stdin);
char *p = str;
while (*p != '\0') {
if (isupper(*p)) {
upper++;
} else if (islower(*p)) {
lower++;
} else if (*p == ' ') {
space++;
} else if (isdigit(*p)) {
digit++;
} else {
other++;
}
p++;
}
printf("Uppercase letters: %d\n", upper);
printf("Lowercase letters: %d\n", lower);
printf("Spaces: %d\n", space);
printf("Digits: %d\n", digit);
printf("Other characters: %d\n", other);
return 0;
}
```
这个程序首先定义了一个长度为100的字符数组 `str`,并且定义了5个计数器变量 `upper`、`lower`、`space`、`digit` 和 `other`,用来记录不同类型字符的个数。然后,程序通过 `fgets()` 函数从标准输入中读取一行字符串,存储在 `str` 中。
接下来,程序定义了一个指向字符数组首元素的指针变量 `p`,并且通过 `while` 循环遍历整个字符串。在循环体内,程序使用 `if-else` 语句判断当前字符的类型,并且递增相应的计数器变量。最后,程序输出各个类型字符的个数。
需要注意的是,上面的程序中使用了 `<ctype.h>` 头文件中的函数 `isupper()`、`islower()`、`isdigit()`,这些函数分别用于判断一个字符是否为大写字母、小写字母、数字。
阅读全文