用c语言写一个从外部输入一个字符串,计算这个字符串中,大写字母、小写字母、数字和其它字符的个数。
时间: 2024-05-01 09:16:41 浏览: 11
```c
#include <stdio.h>
int main() {
char str[100];
int i, upper=0, lower=0, digit=0, other=0;
printf("请输入一个字符串:\n");
scanf("%[^\n]", str); // 读取一行字符串,以换行符为结尾
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 {
other++;
}
}
printf("大写字母个数:%d\n", upper);
printf("小写字母个数:%d\n", lower);
printf("数字个数:%d\n", digit);
printf("其他字符个数:%d\n", other);
return 0;
}
```
相关问题
用c语言实现输入一组字符串,计算字符串中数字、大写字母和小写字母的个数
以下是用C语言实现输入一组字符串,计算字符串中数字、大写字母和小写字母的个数的代码:
```c
#include <stdio.h>
#include <ctype.h> // 用于判断字符类型的库函数
int main() {
char str[100]; // 声明一个字符串数组
int num_count = 0, upper_count = 0, lower_count = 0;
// 初始化数字、大写字母和小写字母的个数为0
printf("请输入字符串:");
fgets(str, sizeof(str), stdin); // 从标准输入读取字符串
for (int i = 0; str[i] != '\0'; i++) {
if (isdigit(str[i])) { // 判断是否为数字
num_count++;
} else if (isupper(str[i])) { // 判断是否为大写字母
upper_count++;
} else if (islower(str[i])) { // 判断是否为小写字母
lower_count++;
}
}
printf("数字个数:%d\n", num_count);
printf("大写字母个数:%d\n", upper_count);
printf("小写字母个数:%d\n", lower_count);
return 0;
}
```
代码解析:
1. 首先声明一个大小为100的字符串数组 `str`,同时初始化数字、大写字母和小写字母的个数为0。
2. 使用 `fgets()` 函数从标准输入(即键盘)读取一行字符串,存储在 `str` 数组中。`fgets()` 函数的第一个参数是要读取数据的数组名称,第二个参数是数组的大小,第三个参数是文件指针,表示要读取的数据来源。因为我们要从键盘输入,所以使用标准输入流 `stdin`。
3. 使用 `for` 循环遍历字符串数组 `str` 中的每个字符,判断每个字符是否为数字、大写字母或小写字母,如果是则将相应计数器加1。
4. 最后使用 `printf()` 函数输出统计结果。
注意:
1. 在使用 `fgets()` 函数时,要注意输入的最大字符数不能超过指定的数组大小减1,因为字符串末尾需要有一个空字符 `\0`。
2. 在判断字符类型时,可以使用 `ctype.h` 头文件中提供的库函数,如 `isdigit()`、`isupper()` 和 `islower()` 等。
用C语言写键盘输入一个字符串,统计其中的大写字母、小写字母、数字字母、其他字符的个数
以下是用C语言实现键盘输入一个字符串,统计其中的大写字母、小写字母、数字字母、其他字符的个数的代码:
```c
#include <stdio.h>
int main() {
char str[100];
int i, upper = 0, lower = 0, digit = 0, other = 0;
printf("请输入一个字符串:");
gets(str);
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 {
other++;
}
}
printf("大写字母个数:%d\n", upper);
printf("小写字母个数:%d\n", lower);
printf("数字个数:%d\n", digit);
printf("其他字符个数:%d\n", other);
return 0;
}
```
首先定义了一个字符数组 `str` 来存储输入的字符串,以及四个整型变量 `upper`、`lower`、`digit`、`other` 来分别统计大写字母、小写字母、数字和其他字符的个数。
然后通过 `gets` 函数获取用户输入的字符串。注意:`gets` 函数不会判断输入的字符串长度,可能会导致缓冲区溢出,因此在实际使用中需要使用更安全的字符串输入函数,比如 `fgets`。
接着使用 `for` 循环遍历字符串中的每个字符,并根据 ASCII 码判断该字符是大写字母、小写字母、数字还是其他字符,并分别对 `upper`、`lower`、`digit`、`other` 变量进行累加。
最后输出各个字符类型的个数即可。