代码如下
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <ctype.h> // 引入ctype.h头文件以使用isalpha, isspace, isdigit等函数
int main()
{
char input[1000]; // 假设输入字符不超过1000个
int letter_count = 0;
int space_count = 0;
int digit_count = 0;
int other_count = 0;
printf("请输入一行字符:");
fgets(input, sizeof(input), stdin); // 使用fgets读取一行字符,包括空格
// 遍历字符串中的每个字符
for (int i = 0; input[i] != '\0'; i++)
{
// 判断字符类型并计数
if (isalpha(input[i]))
{
letter_count++;
}
else if (isspace(input[i]))
{
space_count++;
}
else if (isdigit(input[i]))
{
digit_count++;
}
else
{
other_count++;
}
}
// 输出统计结果
printf("英文字母个数:%d\n", letter_count);
printf("空格个数:%d\n", space_count);
printf("数字个数:%d\n", digit_count);
printf("其他字符个数:%d\n", other_count);
return 0;
}
其中用到的ctype.h头文件
其中题目用到的几个函数👇
isalpha
-
原型:
int isalpha ( int c );
-
功能:判断字符 c 是否为英文字母
-
说明:当 c 为英文字母 ‘a’ ~ ‘z’ 或 ‘A’ ~ ‘Z’ 时,返回非零值,否则返回零。
isdigit
-
原型:
int isdigit ( int c );
-
功能:判断字符 c 是否为数字
-
说明:当c为数字 ‘0’ ~ ‘9’ 时,返回非零值,否则返回零。