C语言 指针 输入一个字符串,找出其中大写字母、小写字母、空格、数字以及其它字符各有多少个。
时间: 2023-07-10 17:37:35 浏览: 154
好的,这道题目也可以用指针来实现。和使用字符数组的方法类似,我们同样使用指针遍历整个字符串,然后统计其中大写字母、小写字母、空格、数字以及其它字符的个数。
以下是使用指针的实现代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100], *p = str;
int upper = 0, lower = 0, space = 0, digit = 0, other = 0;
printf("请输入一个字符串:");
gets(str);
while (*p != '\0') {
char c = *p;
if (isupper(c)) {
upper++;
} else if (islower(c)) {
lower++;
} else if (isspace(c)) {
space++;
} else if (isdigit(c)) {
digit++;
} else {
other++;
}
p++;
}
printf("大写字母个数:%d\n", upper);
printf("小写字母个数:%d\n", lower);
printf("空格个数:%d\n", space);
printf("数字个数:%d\n", digit);
printf("其它字符个数:%d\n", other);
return 0;
}
```
以上代码中,我们定义了一个指向字符数组 `str` 的指针 `p`,然后使用 `while` 循环遍历整个字符串,逐个判断每个字符的类型,并统计相应的计数器。
需要注意的是,字符串最后一个字符是 `\0`,我们需要在循环中判断指针指向的字符是否为 `\0`,如果是,则退出循环。
同时,由于 `gets` 函数不安全,同样可以使用 `fgets` 函数代替。
阅读全文