注意
c >= 'a'&&c <= 'z'
与
'a' <= c <= 'z'
并不相同
运算符根据自左向右的结合行
先运算'a' <= c
值为1 or 0
然后再与‘z’比较
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
/*
【程序17】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
*/
int main(void){
int letters = 0, spaces = 0, digits = 0, others = 0;
char c;
printf("请输入字符串:\n");
while ((c = getchar()) != '\n')
{
if ((c >= 'a'&&c <= 'z') || (c >= 'A'&&c <= 'Z'))
{
letters++;
}
else if (c == ' ')
{
spaces++;
}
else if (c >= '0'&&c <= '9')
{
digits++;
}
else
{
others++;
}
}
printf("字母=%d,数字=%d,空格=%d,其他=%d\n", letters, digits, spaces, others);
return 0;
}