输入一行字符,分别统计出其中英文字母、空格、数字和其他字符 用C语言编写代码!
输入一行字符分别统计,出其中英文字母空格数字和其他字符的个数的源代码如下:
#include
int main()
{
char c;
int letters=0,spaces=0,digits=0,others=0;
printf("请输入一些字母:
");
while((c=getchar())!='
')
{
if((c>='a'&&c='A'&&c<='Z'))
letters++;
else if(c>='0'&&c<='9')
digits++;
else if(c==' ')
spaces++;
else
others++;
}
printf("字母=%d,数字=%d,空格=%d,其他=%d
",letters,digits,spaces,others);
return 0;
}
扩展资料
C语言程序统计一个文件的字符数的源代码如下
#include
#include
int main(void)
{
int counter = 0; //计数器
int ch; //存储从文件中读入的字符
while( EOF != (ch = getchar()) ) //使用getchar函数从标准输入中读取字符,当读取到末尾时停止循环
{
counter++; //计数器自增
}
printf("%d", counter);
return 0;
}
#include
#include
typedef int KeyType;
#define MAXSIZE 26
typedef struct{
KeyType key;
KeyType keynumber;
}RecType;
typedef struct{
RecType r[MAXSIZE+1];
int length;
}SqList;
void Bubblesort(SqList &q) //冒泡排序
{
int j,p=q.length,temp1,temp2,flag=1,ps;
for(p;p>0&&flag==1;p=ps)
{
flag=0;
for(j=0;j<p;j++)
if(q.r[j].key>=q.r[j+1].key)
{
temp1=q.r[j].key;
temp2=q.r[j].keynumber;
q.r[j].key=q.r[j+1].key;
q.r[j].keynumber=q.r[j+1].keynumber;
q.r[j+1].key=temp1;
q.r[j+1].keynumber=temp2;
flag=1;
ps=j;
}
}
}
void main()
{
char ch;
int number=0,bigletter=0,smallletter=0,blank=0,other=0,num,line,i=0;
int schar[26],bchar[26];
float percent=0.0;
SqList s;
for(num=0;num<26;num++)
{
schar[num]=0;
bchar[num]=0;
}
cout<<"输入一串字符:"<<endl;
while((ch=getchar())!='@')
{
if(ch>='A'&&ch<='Z')
{
bigletter++;
for(num=0;num<26;num++)
{
if(ch==(num+65))
{
bchar[num]++;
}
}
}
else
if(ch>='a'&&ch<='z')
{
smallletter++;
for(num=0;num<26;num++)
{
if(ch==(num+97))
{
schar[num]++;
}
}
}
else
if(ch>='0'&&ch<='9')
number++;
else
if(ch==' ')
blank++;
else
other++;
}
cout<<"数字的个数:"<<number<<endl;
cout<<"大写字母的个数:"<<bigletter<<endl;
cout<<"小写字母的个数:"<<smallletter<<endl;
cout<<"字母的总个数:"<<bigletter+smallletter<<endl;
cout<<"空格的个数:"<<blank<<endl;
cout<<"其它字符的个数:"<<other<<endl<<endl;
cout<<"各个字母统计:"<<endl;
cout<<"小写字母:"<<endl;
line=0;
for(num=0;num<26;num++)
{
percent=percent+schar[num];
}
for(num=0;num<26;num++)
if(schar[num]>0)
{
i++;
s.length=i;
s.r[i].key=schar[num];
s.r[i].keynumber=num;
}
Bubblesort(s);
for(num=i;num>=1;num--)
{
printf("%c=%5d,%6.2f%% ",s.r[num].keynumber+97,s.r[num].key,s.r[num].key/percent*100);
}
cout<<endl;
cout<<"大写字母:"<<endl;
line=0;
for(num=0;num<26;num++)
if(bchar[num]>0)
{
line++;
printf("%c:%d ",num+65,bchar[num]);
if(line%10==0)
cout<<endl;
}
cout<<endl<<endl;
}
本程序以"@"字符结束输入,因此不能统计"@"字符和以后的字符,可以修改while((ch=getchar())!='@')语句来修改结束输入符!
main()
{char cs;
int zimu,shuzi,kongge,qita;
while((cs=getchar())!='\n')
{ if(cs>'a'&&cs<'z'||cs>'A'&&cs<'Z') zimu++;
else if(cs>0&&cs<9) shuzi++;
esleif(cs="") kongge++;
else
qita++;
printf("zimu=%d,shuzi=%d,kongge=%d,qita=%d\n",zimu,shuzi,kongge,qita);}
...告诉我C语言中“输入一行字符,分别统计出其中英文字母,空格,数字和...
78¥¥92 getchar一次只能从缓存中提取一个字符,所以先提取7,赋给c,再做比较,然后下一次循环,提取8,赋给c,做比较,知道得到的字符是'\\n'换行符,while 退出
1. 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个...
include <stdio.h> int main(){ int i=0, space=0, num=0, n=0, ch=0;char s[20];printf("请输入一串字符 ");gets(s);while(s[i] != '\\0'){ if(s[i]==' ')space++;else if(s[i]<='9' && s[i]>='0')num++;else if(s[i]<='z' && s[i]>='a' || s[...
c语言输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个...
scanf("%s",s);把这句改为 scanf("%[^\\n]",s);或者gets(s);%s在遇到空白字符的时候就输入结束了,所以无法统计空格数。
c++,输入一行字符,分别统计其中的英文大写字母,小写字母,数字字符和其 ...
求字符串的长度(字符总数):sizeof(ch),求出字符串占有几个字节,因为一个字符占一个字节,所以字节数=字符数。创建一个数组来存放每个字符对应的ASCII码,然后根据ASCII码来判断是什么字符。大写英文字符从65-90,小写英文字符从97-122,数字字符为48-57,剩下的自然是其他字符了。设置一个循环判断...
求:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个...
include<stdio.h> define MAX 100 \/*定义数组长度*\/ void main(){ char a[MAX];int i,word=0,num=0,space=0,other=0;printf("请输入:");gets(a); \/*将输入的字母存入数组*\/ for(i=0;a[i]!='\\0';i++){ if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')w...
C++编程:输入一行字符,分别统计其中的英文大写字母,小写字母、数字字符...
include <stdio.h> include <stdlib.h> int main(){ char c;int digit = 0, upper = 0, lower = 0, space = 0, other = 0;while (scanf("%c", &c) == 1 && c != '\\n'){ if (isdigit(c))++digit;else if (isupper(c))++upper;else if (islower(c))++lower;else if...
c语言题目:输入一行字符,分别统计出其中的英文字母、空格、数字和其他字...
include<stdio.h> int main(){ char c;int letter=0,space=0,num=0,other=0;while((c=getchar())!='\\n')if(c>='A'&&c<='Z'||c>='a'&&c<='z')letter++;else if(c>='0'&&c<='9')num++;else if(c==' ')space++;else other++;printf("letter=%d num=%d space=%d ...
C语言程序设计:输入一行字符,统计出其中单词的个数,个单词之间用空格分...
为了统计一行字符中的单词个数,我们可以编写一个简单的C语言程序。首先,我们需要定义一个足够大的字符数组来存储输入的字符串。接下来,我们要求用户输入一行字符,并在输入结束时按回车键。程序将统计并输出单词的数量。下面是一个示例程序,用于实现上述功能:include int main() { char str[100];pri...
从键盘任意输入一行字符,分别统计出其中英文字母、空格、数字和其他字...
&& n<=122)) a++;else if(n==4) b++;\/\/两个等号 else if(n>=48 && n<=57) c++;else d++;if(m=='\\n') break;}while(1);printf("\\n英文字母有%d个",a);printf("\\n空格有%d个",b);printf("\\n数字有%d个",c);printf("\\n其他字符有%2d个",d);getch();} ...
输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数,以...
问题1:用cin是无法得到空格的,也就是说输入ab c,只能得到ab。cin.getline(a,50);可以得到一行。问题2:用\\n作为结束符这个太超越了... ...建议你用\\0作为结束符