|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
要统计一段话中各个字母 数字 标点符号 空格出现的次数
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define LEN 500
#define CNT 60
main()
{
char Paragraph[LEN]={"agb+*/-as/*dfasdgf13412!adsg 1212!@#asdasg f3"};
int LetterCnt[CNT]={0},Length;
int i,j,o,p,q,m,k,l;
Length=strlen(Paragraph);
for(i=0;i<=Length-1;i++)
{
if(isalpha(Paragraph[i]))
{
j=tolower(Paragraph[i])-'a';
LetterCnt[j]++;
}
}
printf("The paragraph contains:\n");
for(i=0;i<=j-1;i++)
{
if(LetterCnt[i]!=0)
{
printf("%c=%d\t",i+'a',LetterCnt[i]);
}
if((i+1)%7==0)
{
printf("\n");
}
}
printf("\n");
for(o=0;o<=Length-1;o++)
{
if(isdigit(Paragraph[o]))
{
p=(Paragraph[o])-48;
LetterCnt[p]++;
}
}
printf("The number contains:\n");
for(o=0;o<=p-1;o++)
{
if(LetterCnt[o]!=0)
{
printf("%c=%d\t",o+48,LetterCnt[o]);
}
if((o+1)%7==0)
{
printf("\n");
}
}
printf("\n");
for(q=0;q<=Length-1;q++)
{
if(ispunct(Paragraph[q]))
{
m=(Paragraph[q])-33;
LetterCnt[m]++;
}
}
printf("The paragraph contains:\n");
for(q=0;q<=m-1;q++)
{
if(LetterCnt[q]!=0)
{
printf("%c=%d\t",q+33,LetterCnt[q]);
}
if((q+1)%7==0)
{
printf("\n");
}
}
printf("\n");
for(k=0;k<=Length-1;k++)
{
if(ispunct(Paragraph[k]))
{
l=(Paragraph[k])-32;
LetterCnt[l]++;
}
}
printf("The paragraph contains:\n");
for(k=0;k<=l-1;k++)
{
if(LetterCnt[k]!=0)
{
printf("%c=%d\t",k+32,LetterCnt[k]);
}
if((k+1)%7==0)
{
printf("\n");
}
}
printf("\n");
}
楼主,试一下这个代码
- #include <stdio.h>
- int main(void)
- {
- char c ;
- int d[128] = {0} , i ;
- for(i = 0 ; (c = getchar()) != '\n' ; i ++) d[c] ++ ;
- for(i = 0 ; i < 128 ; i ++) if(d[i]) printf("%c : %2d\n" , i , d[i]) ;
- }
复制代码
|
|