用户从键盘输入一行字符,编写一个程序,统计并输出其中英文字符、数字、空格和其他字符的个数。
时间: 2023-05-31 16:19:05 浏览: 167
C语言程序设计-输入一行字符,分别统计出英文大小写字母、空格、数字和其他字符的个数
5星 · 资源好评率100%
### 回答1:
可以使用循环遍历输入的字符串,对每个字符进行判断,判断其属于哪一类字符(英文字符、数字、空格或其他字符),然后分别累加计数器,最后输出结果即可。
具体实现可以参考以下代码:
```
#include <stdio.h>
int main()
{
char str[100];
int i, alpha_count = , digit_count = , space_count = , other_count = ;
printf("请输入一行字符:");
gets(str);
for (i = ; str[i] != '\'; i++)
{
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z'))
{
alpha_count++;
}
else if (str[i] >= '' && str[i] <= '9')
{
digit_count++;
}
else if (str[i] == ' ')
{
space_count++;
}
else
{
other_count++;
}
}
printf("英文字符个数:%d\n", alpha_count);
printf("数字个数:%d\n", digit_count);
printf("空格个数:%d\n", space_count);
printf("其他字符个数:%d\n", other_count);
return ;
}
```
注意,这里使用了 gets 函数来读取输入的字符串,但是 gets 函数存在安全问题,建议使用 fgets 函数代替。
### 回答2:
这道题需要用到字符的判定和统计。我们可以用一个计数器,对输入的字符进行分类,然后进行累加,最后输出结果。
首先,我们可以定义四个计数器,分别用来记录英文字母、数字、空格和其他字符的个数,如下所示:
int letter_count = 0;
int digit_count = 0;
int space_count = 0;
int other_count = 0;
然后,我们需要用一个循环来读取用户从键盘输入的字符,直到输入结束为止。在循环中,我们使用 getchar() 函数读取每一个字符,对字符进行分类,分类的方法如下:
1. 如果字符是英文字母,我们可以用 isalpha() 函数进行判定,然后将 letter_count 计数器加 1。
2. 如果字符是数字,我们可以用 isdigit() 函数进行判定,然后将 digit_count 计数器加 1。
3. 如果字符是空格,我们可以用 isspace() 函数进行判定,然后将 space_count 计数器加 1。
4. 如果字符不是英文字母、数字或空格,我们可以将其归为其他字符,将 other_count 计数器加 1。
代码实现如下:
#include <stdio.h>
#include <ctype.h>
int main()
{
int letter_count = 0;
int digit_count = 0;
int space_count = 0;
int other_count = 0;
char ch;
printf("请输入一行字符:\n");
while ((ch = getchar()) != '\n')
{
if (isalpha(ch))
{
letter_count++;
}
else if (isdigit(ch))
{
digit_count++;
}
else if (isspace(ch))
{
space_count++;
}
else
{
other_count++;
}
}
printf("其中英文字符个数为%d\n", letter_count);
printf("其中数字个数为%d\n", digit_count);
printf("其中空格个数为%d\n", space_count);
printf("其中其他字符个数为%d\n", other_count);
return 0;
}
最后,我们输出统计结果,具体输出的方法就是用 printf() 函数输出计数器的值即可。
这个程序简单有效,可以将不知道什么类型的字符进行分类,最后输出结果。
### 回答3:
编写一个统计输入行字符的程序,需要先读取用户从键盘输入的一行字符,然后通过循环遍历每个字符,分别判断该字符属于哪一类。常见的字符类型包括英文字符、数字、空格和其他字符。
对于英文字符,可以通过判断字符的ASCII码值是否在大写字母和小写字母的区间内来判断。如果是,则计数器+1。
对于数字字符,可以通过ASCII码值是否在数字区间内来判断。如果是,则计数器+1。
对于空格字符,则可以直接判断该字符是否等于空格。如果是,则计数器+1。
对于其他字符,则可以通过排除已知的英文字符、数字和空格字符来判断该字符是否属于其他字符。如果是,则计数器+1。
最终程序可以像下面的代码这样实现:
```
#include <stdio.h>
int main() {
char str[100];
int i, eng, num, space, other;
eng = num = space = other = 0;
printf("请输入一行字符:\n");
gets(str);
for (i = 0; str[i] != '\0'; i++) {
if ((str[i] >= 'A' && str[i] <= 'Z') || (str[i] >= 'a' && str[i] <= 'z')) {
eng++;
} else if (str[i] >= '0' && str[i] <= '9') {
num++;
} else if (str[i] == ' ') {
space++;
} else {
other++;
}
}
printf("输入字符中英文字符个数为: %d\n", eng);
printf("输入字符中数字个数为: %d\n", num);
printf("输入字符中空格个数为: %d\n", space);
printf("输入字符中其他字符个数为: %d\n", other);
return 0;
}
```
当用户输入一行字符后,程序会逐个字符进行判断,并记录个数。最后输出统计结果,包括英文字符个数、数字个数、空格个数和其他字符个数。
阅读全文