编写C语言程序,从键盘上输入一个字符串,统计其中大写字母、小写字母、数字字符、空格的个数。 输入说明: 输入一个字符串 输出说明: 输出大写字母、小写字母、数字字符、空格的个数,用逗号分隔它们。 Sample Input Ab c2:3dA A709 bM.c454>AA#66@6B,A Sample Output 8 5 11 3
时间: 2024-03-17 20:40:05 浏览: 146
以下是一个可能的实现:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin);
int upper = 0, lower = 0, digit = 0, space = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (isupper(str[i])) {
upper++;
} else if (islower(str[i])) {
lower++;
} else if (isdigit(str[i])) {
digit++;
} else if (isspace(str[i])) {
space++;
}
}
printf("%d,%d,%d,%d", upper, lower, digit, space);
return 0;
}
```
程序先从键盘上读取一个字符串,然后使用一个循环遍历字符串中的每个字符。对于每个字符,判断它是否为大写字母、小写字母、数字字符或空格,如果是,则将相应的计数器加一。最后,将计数器的值以逗号分隔的形式输出即可。
相关问题
编写一个C语言程序,由控制台输入一个字符串,统计此字符串中大写字母、小写字母、数字、空格和其他字符的个数。
好的,以下是一个简单的 C 语言程序,可以实现您的要求:
```c
#include <stdio.h>
int main() {
char str[100];
int i, upper = 0, lower = 0, digit = 0, space = 0, other = 0;
printf("请输入一个字符串:\n");
fgets(str, 100, stdin);
for (i = 0; str[i] != '\0'; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') {
upper++;
} else if (str[i] >= 'a' && str[i] <= 'z') {
lower++;
} else if (str[i] >= '0' && str[i] <= '9') {
digit++;
} else if (str[i] == ' ') {
space++;
} else {
other++;
}
}
printf("大写字母:%d\n", upper);
printf("小写字母:%d\n", lower);
printf("数字:%d\n", digit);
printf("空格:%d\n", space);
printf("其他字符:%d\n", other);
return 0;
}
```
这个程序首先使用 `fgets` 函数从控制台获取用户输入的字符串,然后使用 for 循环遍历字符串中的每个字符,统计其中大写字母、小写字母、数字、空格和其他字符的个数,最后输出统计结果。
请注意,这个程序假设输入的字符串长度不超过 100。如果输入的字符串长度超过了 100,那么程序的行为将是未定义的。如果您需要更健壮的程序,可以在读入字符串后检查其长度是否超过了 100。
c语言统计字符串大写字母小写字母数字,输入并统计字符串中大写字母、小写字母、数字字符、空格字符和其他字符的个数...
以下是一个简单的 C 代码示例,可以统计字符串中大写字母、小写字母、数字字符、空格字符和其他字符的个数:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int i, upper_count = 0, lower_count = 0, digit_count = 0, space_count = 0, other_count = 0;
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
for (i = 0; str[i] != '\0'; i++) {
if (isupper(str[i])) {
upper_count++;
} else if (islower(str[i])) {
lower_count++;
} else if (isdigit(str[i])) {
digit_count++;
} else if (isspace(str[i])) {
space_count++;
} else {
other_count++;
}
}
printf("大写字母个数:%d\n", upper_count);
printf("小写字母个数:%d\n", lower_count);
printf("数字个数:%d\n", digit_count);
printf("空格个数:%d\n", space_count);
printf("其他字符个数:%d\n", other_count);
return 0;
}
```
代码解释:
1. 定义一个字符数组 `str` 用于存储输入的字符串。
2. 定义五个整型变量 `upper_count`、`lower_count`、`digit_count`、`space_count` 和 `other_count`,分别用于统计大写字母、小写字母、数字字符、空格字符和其他字符的个数,初始化为 0。
3. 使用 `fgets` 函数从标准输入读取字符串,存储到数组 `str` 中。
4. 使用 `for` 循环遍历字符串中的每个字符,如果字符是大写字母,将 `upper_count` 加 1;如果字符是小写字母,将 `lower_count` 加 1;如果字符是数字,将 `digit_count` 加 1;如果字符是空格,将 `space_count` 加 1;否则将 `other_count` 加 1。
5. 使用 `printf` 函数输出统计结果。
注意事项:
1. 该代码示例假设字符串中只包含 ASCII 字符。如果包含其他字符集,需要根据具体情况进行修改。
2. 该代码示例中使用了 C 标准库中的函数 `isupper`、`islower`、`isdigit` 和 `isspace`,这些函数可以判断字符是否为大写字母、小写字母、数字或空格字符。
阅读全文