从杭电OJ1219 到getchar 以及EOF

Problem Description
Ignatius is doing his homework now. The teacher gives him some articles and asks him to tell how many times each letter appears.

It's really easy, isn't it? So come on and AC ME.

Input
Each article consists of just one line, and all the letters are in lowercase. You just have to count the number of each letter, so do not pay attention to other characters. The length of article is at most 100000. Process to the end of file.

Note: the problem has multi-cases, and you may use "while(gets(buf)){...}" to process to the end of file.

Output
For each article, you have to tell how many times each letter appears. The output format is like "X:N".

Output a blank line after each test case. More details in sample output.

Sample Input
hello, this is my first acm contest!
work hard for hdu acm.

Sample Output
a:1
b:0
c:2
d:0
e:2
f:1
g:0
h:2
i:3
j:0
k:0
l:2
m:2
n:1
o:2
p:0
q:0
r:1
s:4
t:4
u:0
v:0
w:0
x:0
y:1
z:0

a:2
b:0
c:1
d:2
e:0
f:1
g:0
h:2
i:0
j:0
k:1
l:0
m:1
n:0
o:2
p:0
q:0
r:3
s:0
t:0
u:1
v:0
w:1
x:0
y:0
z:0

Author
Ignatius.L

int c;

c=getchar();

AC代码

#include <iostream>
#include <stdio.h>
using namespace std;

int main()
{
//freopen("D:\\input.txt","r",stdin);
//freopen("D:\\output.txt","w",stdout);
int A[26]={0};
int c;
c=getchar();
while(c!=-1)
{
memset(A,0,sizeof(A));
while((char)c!='\n'&&c!=-1)
{
if(c>='a'&&c<='z')
A[c-'a']++;
c=getchar();
}
for(int i=0;i<26;i++)
{
printf("%c:%d\n",'a'+i,A[i]);
//cout<<'a'+i<<':'<<A[i]<<endl;
}
if(c==-1)
break;
cout<<endl;
c=getchar();
}
}



• 本文已收录于以下专栏：

getchar()和scanf("%c",ch)在用EOF判断结束时的区别

1、getchar() #include int main() { int c; while((c = getchar()) != EOF) putchar...
• hanchengxi
• 2013年02月19日 16:49
• 4500

getchar输入EOF以及\n问题

• dandanteng
• 2012年05月14日 20:01
• 2508

while((ch=getchar())!=EOF && ch != '\n')

• sony_zhang
• 2011年12月29日 11:27
• 3886

关于((ch = getchar()) != EOF)，ch声明为整型的问题

• talent_CYJ
• 2015年10月04日 18:22
• 793

谈一谈getchar()、EOF和Ctrl+D

getchar()   getchar从stdio流中读字符,getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回...
• lyh__521
• 2015年07月10日 16:31
• 1835

while((ch=getchar())!=EOF&&ch != '\n');消除非法输入

• Kwansy
• 2017年11月11日 19:59
• 173

关于getchar()!=EOF问题

getchar()!=EOF不是输出结果为1么让其循环加1输出可是不能呀，求大侠解惑 #include main() {         long nc;         nc=0;   ...
• u012187684
• 2014年05月09日 09:55
• 512

getchar， EOF 以及转义字符

• aprilvkuo
• 2015年02月11日 20:53
• 92

• ww1473345713
• 2016年06月15日 11:34
• 438

getchar返回值类型、EOF、if语句

C语言中getchar()的返回值类型为什么是int？ 正常情况，getchar返回单个字符。但如果getchar()碰到文件结束标志或发生读错误，他必须返回一个EOF。为了区别于正常的字符，只好将E...
• bigcupwater
• 2017年01月04日 23:56
• 230

举报原因： 您举报文章：从杭电OJ1219 到getchar 以及EOF 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)