统计英文字母、空格或换行、数字字符:输入一个正整数n,再输入n个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。试编写相应程序
时间: 2024-10-17 20:07:55 浏览: 88
输入两个正整数m和n求其最大公约数和最小公倍数.docx
5星 · 资源好评率100%
要编写这个程序,你需要使用C语言的基本输入输出功能以及字符分类逻辑。这里是一个简单的示例程序,它接收用户输入的字符串,然后分别计算字母、空格/换行、数字和其它字符的数量。
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int n;
printf("Enter a positive integer n: ");
scanf("%d", &n);
// 声明数组用于存储字符种类计数
int letter_count = 0, space_count = 0, digit_count = 0, other_count = 0;
char input_char; // 临时变量用来读取字符
for (int i = 0; i < n; i++) {
// 从标准输入读取字符
input_char = getchar();
// 检查字符类型并更新计数器
if (isalpha(input_char)) { // 是否为字母(包括大小写)
letter_count++;
} else if (isspace(input_char)) { // 是否为空格或换行符
space_count++;
} else if (isdigit(input_char)) { // 是否为数字
digit_count++;
} else { // 其他字符
other_count++;
}
}
printf("Letters: %d\nSpaces/Line breaks: %d\nDigits: %d\nOther characters: %d\n",
letter_count, space_count, digit_count, other_count);
return 0;
}
```
在这个程序中,`isalpha()` 函数检查字符是否为字母,`isspace()` 检查是否为空白字符(包括空格和换行符),`isdigit()` 判断字符是否为数字。非这几种类型的字符会被归为"其他"类别。
运行此程序时,请确保输入一个正整数,然后按照提示输入字符。程序结束后,它会显示每个字符类型的计数。
阅读全文