字符统计
题目
思路
读取每一个字符,判定是否属于大写字母并且不为AEIOU;
符合条件的字符使得sum++;
字符的读取我们使用scanf即可,读取的时候使用do while
循环,只要读出的字符不为sentinel,就继续读取,代码如下
do{
scanf("%c",&c);
if(c!=sentinel){
//do some work
}
} while (c!=sentinel)
此外需要注意,char
类型其实就是int
,使用的时候需要灵活掌握,一个自行输出ASCII表的程序是
#include <stdio.h>
int main(int argc, char **argv) {
int i =0;
for( i =0;i<128;i++){
printf("%d = %c\n",i,(char)i);
}
return 0;
}
非常简单,但是很实用,这样就能自己参考着使用ASCII码了。注意0-32号字符是控制字符,所以输出的是乱码。
根据我们打印出的ASCII码表,我们知道大写字母的范围是65-90,再查出AEIOU的ASCII码就OK啦。
状态
ACCEPTED
代码
#include <stdio.h>
int main(int argc, char **argv) {
char c;
int sum = 0;
do{
scanf("%c",&c);
//printf("%c",c);
if(c>=65&&c<=90){
if(c!=65&&c!=69&&c!=73&&c!=79&&c!=85){
//printf("%c",c);
sum++;
}
}
}while(c!='\n');
printf("%d",sum);
return 0;
}