输入一行字符,统计其中各种字符个数
编译环境VS2017
其中输出英文字母,数字,空格以及其他字符的个数
需要注意的是fgets()函数的使用,会在字符串末尾(\0前)读入我们在键盘上敲的回车即换行符\n
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define M 1024
void main() {
char str[M];
fgets(str, M, stdin);
int space = 0;
int letter = 0;
int num = 0;
int other = 0;
for (int i = 0; i < (int)strlen(str); ++i) {
if (str[i] == ' ') {
space += 1;
}
else if (str[i] > 64 && str[i] < 91 || str[i]>96 && str[i] < 123) {
letter += 1;
}
else if (str[i] > 47 && str[i] < 58) {
num += 1;
}
else {
if (str[i] != '\n') {//因为fgets()函数会在末尾自动加上\n,影响判断结果,需要判断是否为换行符
other += 1;
}
}
}
printf("空格的个数为:%d\n", space);
printf("英文字母的个数为:%d\n", letter);
printf("数字的个数为:%d\n", num);
printf("其他字符的个数为:%d\n", other);
system("pause");
}
运行结果如下: