)统计英文字母、空格或换行、数字字符:输人一个正整数n,再输人n个字符, 汁其中英文字母、空格或回车、数字字符和其他字符的个数。试编写相应程序。
时间: 2024-11-09 21:30:44 浏览: 16
java判断字符串是正整数的实例
5星 · 资源好评率100%
要编写这个程序,你可以使用C语言中的`ctype.h`库,它提供了一些函数用于检查字符的类型。以下是一个简单的C程序,它可以统计输入字符串中的字母、空格、数字和其他字符的数量:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int n, count_letters = 0, count_spaces_and_newlines = 0, count_digits = 0, count_other_chars = 0;
printf("Enter a positive integer n: ");
scanf("%d", &n);
getchar(); // Consume the newline character left in the buffer after reading 'n'
char input[100]; // Assuming input string is less than 100 characters long
printf("Enter %d characters: ", n);
fgets(input, sizeof(input), stdin);
for (int i = 0; i < strlen(input); i++) {
if (isalpha(input[i])) { // Check if it's an alphabet
count_letters++;
} else if (isspace(input[i]) || isspace(input[i] == '\n')) { // Check for space or newline
count_spaces_and_newlines++;
} else if (isdigit(input[i])) { // Check if it's a digit
count_digits++;
} else { // Other characters like punctuation or special symbols
count_other_chars++;
}
}
printf("Number of letters: %d\n", count_letters);
printf("Number of spaces and newlines: %d\n", count_spaces_and_newlines);
printf("Number of digits: %d\n", count_digits);
printf("Number of other characters: %d\n", count_other_chars);
return 0;
}
```
在这个程序中,我们首先读取用户输入的正整数`n`,然后读取输入的字符序列。接着遍历输入字符串,使用`ctype.h`库中的`isalpha()`、`isspace()`和`isdigit()`函数分别检测每个字符是否为字母、空格或数字。如果不是这些类型的字符,则归类为其他字符。
最后,打印出各个字符类型的计数结果。
阅读全文