用指针 统计并输出键盘输入的一行文字中大写字母、小写字母、空格、数字和其它字符的个数
时间: 2024-05-08 19:17:06 浏览: 20
```
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int upper = 0, lower = 0, space = 0, digit = 0, other = 0;
printf("请输入一行文字:");
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("大写字母:%d\n", upper);
printf("小写字母:%d\n", lower);
printf("空格:%d\n", space);
printf("数字:%d\n", digit);
printf("其他字符:%d\n", other);
return 0;
}
```
相关问题
输入一行文字,用指针的方法统计其中大写字母,小写字母,空格,数字以及其他字符的个数利用c语言
下面是一个示例代码:
```c
#include <stdio.h>
#include <ctype.h> // 包含了用于字符判断的函数,如 isdigit, isalpha 等
int main() {
char str[100];
int upper = 0, lower = 0, space = 0, digit = 0, other = 0;
char *p;
printf("请输入一行文字:\n");
fgets(str, 100, stdin); // 使用 fgets 函数读取一行文字
p = str; // 指向字符串的第一个字符
while (*p != '\0') { // 如果没有到字符串末尾
if (isupper(*p)) { // 判断是否为大写字母
upper++;
} else if (islower(*p)) { // 判断是否为小写字母
lower++;
} else if (isspace(*p)) { // 判断是否为空格
space++;
} else if (isdigit(*p)) { // 判断是否为数字
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;
}
```
代码中使用指针 p 指向字符串的第一个字符,然后遍历整个字符串,判断每个字符的类型,统计出现的次数。注意,这里使用了 ctype.h 库中的一些函数,可以方便地进行字符判断。
利用指针实现:输入一行字符,统计其中大写字母,小写字母、空格、数字以及其他字符的个数。
以下是使用指针实现统计字符个数的示例代码:
```c
#include <stdio.h>
void count(char *str, int *num) {
while (*str != '\0') {
if (*str >= 'A' && *str <= 'Z') {
num[0]++; // 大写字母个数
} else if (*str >= 'a' && *str <= 'z') {
num[1]++; // 小写字母个数
} else if (*str == ' ') {
num[2]++; // 空格个数
} else if (*str >= '0' && *str <= '9') {
num[3]++; // 数字个数
} else {
num[4]++; // 其他字符个数
}
str++;
}
}
int main() {
char str[100];
int num[5] = {0}; // 存放统计结果数据
printf("请输入一行字符:");
gets(str);
count(str, num);
printf("大写字母个数:%d\n", num[0]);
printf("小写字母个数:%d\n", num[1]);
printf("空格个数:%d\n", num[2]);
printf("数字个数:%d\n", num[3]);
printf("其他字符个数:%d\n", num[4]);
return 0;
}
```