C语言:从键盘输入一篇英文文本,统计每个英文字母(分大小写)及空格、数字、回车和其他字符,咋编?

要求:
1)输入长短无限制,可有多行,以EOF结束。
2)输出格式为每一项目一行,如A:7,Space: 10等。
3)先输出数字,再输出大写字母,接着输出小写字母,最后输出空格、回车和其他字符。

程序代码:

#include <stdio.h>
#include <string.h>

#define MAX 10000

void input(char source[]);
void output(int sign[], int n);

void main()
{
char source[MAX];
int sign[256];
int i;

input(source);

for(i=0; i<256; i++)
{
sign[i] = 0;
}

//统计字符串中每个字符的数量
for(i=0; i<strlen(source); i++)
{
sign[source[i]]++;
}

output(sign, 256);
}

void input(char source[])
{
int i;

printf("input a string(end of EOF) : ");
for(i=0; i<MAX-1 && (source[i]=getchar())!=EOF; i++);
source[i] = '\0';
}

void output(int sign[], int n)
{
int i;

//输出数字
for(i='0'; i<'0'+10; i++)
{
printf("%c : %d\n", (char) i, sign[i]);
}

//输出大写字母
for(i='A'; i<'A'+26; i++)
{
printf("%c : %d\n", (char) i, sign[i]);
}

//输出小写字母
for(i='a'; i<'a'+26; i++)
{
printf("%c : %d\n", (char) i, sign[i]);
}

//输出空格
i = 32;
printf("Space : %d\n", sign[i]);

//输出回车
i = 10;
printf("Enter : %d\n", sign[i]);

//输出其他字符
for(i=0; i<256; i++)
{
if(!(i>='0' && i<='9') && !(i>='A' && i<='Z') && !(i>='a' && i<='z') && i!=32 && i!=13)
{
printf("%c : %d\n", (char) i, sign[i]);
}
}
}


运行测试:

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-09-08

代码文本:

#include "stdio.h"

int main(int argc,char *argv[]){

int s[128],i,t;

for(i=0;i<128;s[i++]=0);

printf("Please enter a text...\n");

while((i=getchar())!=EOF)

s[i]++;

for(t=i=0;i<128;i++)

if(s[i]){

if(i>='a' && i<='z' || i>='A' && i<='Z' || i>='0' && i<='9')

printf("%c:\t%d\n",i,s[i]);

else if(s[i]!=' ' && s[i]!='\n')

t++;

}

printf("Space:\t%d\n",s[' ']);

printf("Enter:\t%d\n",s['\n']);

if(t)

printf("Other:\t%d\n",t);

return 0;

}

本回答被提问者采纳
第2个回答  2020-09-07
可以用一个单重的循环实现,每次读入一个字符,再按字符的特征进行分类的统计计数。到最后,按规定的顺序输出各类字符的读数值。本回答被网友采纳
第3个回答  2020-09-07
从键盘输入一篇英文文本统计,每个英文字母分为大小写,空阔个数字。
第4个回答  2020-09-09
键盘输入字符串,一旦回车,就输入结束了。
输入语句,也就结束了。
那么,每输入一行,只有一个回车,也必须有一个。
 
要求输入多行,就得执行多次输入语句。
最后,输入一个空白的行,仅有回车,结束全部输入。

...统计每个英文字母(分大小写)及空格、数字、回车和其他字符,咋编...
(char) i, sign[i]);}\/\/输出大写字母for(i='A'; i<'A'+26; i++){printf("%c : %d\\n", (char) i, sign[i]);}\/\/输出小写字母for(i='a';

输入一行字符,分别统计出其中英文字母(包括大小写)、空格、数字和其他字...
char c;int letters=0,spaces=0,digits=0,others=0;printf("请输入一串任意的字符:\\n");while((c=getchar())!='\\n'){ if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letters++;else if(c>='0'&&c<='9')digits++;else if(c==' ')spaces++;else others++;} printf("...

...文本文件,分别统计出其中英文字母、空格、数字和其它字符的个数_百...
printf("字母数:%d\\n空格数:%d\\n数字数:%d\\n其他字符:%d\\n",letters,space,digit,other);return 0;} 运行效果:

C语言 输入一行字符,分别统计求出其中英文字母、空格、数字和其他字符的...
printf("please input the string\\n");while((s=getchar())!='\\n') \/*循环从键盘读入字符直到一行结束(输入回车)*\/ { if((s='a')||(s'A')){ if(s='A')da++;if(s='a')xiao++;i++; \/*i存入字母数*\/ } else if(s==' ') j++; \/*j存入空格数,注意s==' '里面是...

编写一个C语言程序:从键盘读入一行文本,统计每个英文字母出现的次数
3、如果是英文字母,则统计个数。输入部分,可以存为数组,也可以每输入一个字符计算一次。二、参考代码:include <stdio.h>int main(){ int c; int cnt[52]={0}; while((c=getchar())!='\\n')\/\/读取每个字符,直到遇到换行为止。 { if(c>='A'&&c<='Z')\/\/大写 ...

C语言编程 从键盘输入一个字符串,分别统计其中大写字母、小写字母及其...
include<stdio.h> void main(){ int countd=0,countx=0,countk=0,counts=0,countq=0;\/\/分别用来对大写字母、小写字母、空格、数字、其他字符做计数 char s[100],*p;printf("请输入一个字符串:");int i=0;while((s[i]=getchar())!='\\n')i++;p=&s[0];while(*p!='\\n'){ ...

...英文字母、空格、数字和其他字符的个数。(C语言)
s[i]<='Z' && s[i]>='A')ch++;else n++;i++;} printf("刚才输入的字符中英文字符个数为 %d\\n", ch);printf("刚才输入的字符中空格个数为 %d\\n", space);printf("刚才输入的字符中数字个数为 %d\\n", num);printf("刚才输入的字符中其他个数为 %d\\n", n);return 0;} ...

...输入一行字符,分别统计其中英文字母、空格、数字和其它字符的个数...
int main(){ int zm=0,kg=0,sz=0,qt=0;char c;while((c=getchar())!='\\n')if(c>='A' && c<='Z' || c>='a' && c<='z')zm++;else if(c==' ')kg++;else if(c>='0' && c<='9')sz++;else qt++;printf("英文字母:%d\\n",zm);printf("空格:%d\\n",kg);...

输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数...
输入一行字符分别统计,出其中英文字母空格数字和其他字符的个数的源代码如下:include<stdio.h> int main(){ char c;int letters=0,spaces=0,digits=0,others=0;printf("请输入一些字母:\\n");while((c=getchar())!='\\n'){ if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letters...

C语言编程:输入一行字符,统计其中英文字母的个数?
include<stdio.h> int main(){char s[200];int i,n=0;gets(s);for(i=0;s[i];i++)if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z')n++;printf("%d\\n",n);getch();return 0;}

相似回答
大家正在搜