2.统计英文字母、空格或换行、数字字符和其他字符:输入一个正整数n,再输入n个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。试编写相应程序。
时间: 2024-10-18 08:04:22 浏览: 39
输入两个正整数m和n求其最大公约数和最小公倍数 (2).docx
在 C 语言中,你可以使用`ctype.h`库中的函数来判断每个字符的类别,然后进行计数。以下是一个基本的示例程序:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int n, count_letters = 0, count_spaces = 0, count_digits = 0, other_chars = 0;
char input;
printf("Enter a positive integer n: ");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf(" %c", &input); // 防止开头有空格
if (isalpha(input)) { // 判断是否为字母
count_letters++;
} else if (ispunct(input) || isspace(input)) { // 包括空格、换行符以及其他标点符号
if (isspace(input))
count_spaces++;
else
other_chars++; // 其他非字母非空格字符
} else if (isdigit(input)) { // 数字字符
count_digits++;
}
}
printf("Number of letters: %d\n", count_letters);
printf("Number of spaces or newlines: %d\n", count_spaces);
printf("Number of digits: %d\n", count_digits);
printf("Number of other characters: %d\n", other_chars);
return 0;
}
```
阅读全文