输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 用c语言编上面的程序,不要用数组
时间: 2024-10-24 21:12:16 浏览: 21
C语言程序设计-输入一行字符,分别统计出英文大小写字母、空格、数字和其他字符的个数
5星 · 资源好评率100%
在C语言中,可以使用`ctype.h`头文件提供的函数来判断字符类型,然后逐个遍历输入的字符串,统计不同类型的字符数量。以下是相应的C代码实现:
```c
#include <stdio.h>
#include <ctype.h>
int count_letters(char *str);
int count_spaces(char *str);
int count_digits(char *str);
int count_other_chars(char *str);
int main() {
char input[100];
printf("请输入一行字符:");
fgets(input, sizeof(input), stdin); // 读入一行字符,包括换行符
input[strcspn(input, "\n")] = '\0'; // 去掉换行符
int total_chars = strlen(input); // 总字符数
int letter_count = count_letters(input);
int space_count = count_spaces(input);
int digit_count = count_digits(input);
int other_count = total_chars - (letter_count + space_count + digit_count);
printf("英文字母: %d\n", letter_count);
printf("空格: %d\n", space_count);
printf("数字: %d\n", digit_count);
printf("其他字符: %d\n", other_count);
return 0;
}
// 函数用于统计英文字母
int count_letters(char *str) {
int count = 0;
for (; *str != '\0'; str++) {
if(isalpha(*str)) { // 判断字符是否为字母
count++;
}
}
return count;
}
// 函数用于统计空格
int count_spaces(char *str) {
int count = 0;
for (; *str != '\0'; str++) {
if isspace(*str)) { // 判断字符是否为空格
count++;
}
}
return count;
}
// 函数用于统计数字
int count_digits(char *str) {
int count = 0;
for (; *str != '\0'; str++) {
if.isdigit(*str)) { // 判断字符是否为数字
count++;
}
}
return count;
}
// 函数用于统计除字母、空格和数字以外的其他字符
int count_other_chars(char *str) {
int count = 0;
for (; *str != '\0'; str++) {
if (!isalpha(*str) && !isspace(*str) && !isdigit(*str)) { // 判断字符不是字母、空格或数字
count++;
}
}
return count;
}
```
这个程序会首先读入一行字符,然后调用四个辅助函数分别统计字母、空格、数字和其他字符的数量,并在主函数中显示结果。
阅读全文