c语言怎样才能输入一行字符,以回车作为结束标志,分别统计出大写字母,小写字母,空格,数字和其他字符的

作者&投稿:彘闹 (若有异议请与网页底部的电邮联系)
C语言:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数~

#include void main(){ int letter, space, digit, other; char ch; letter = space = digit = other = 0; while ((ch = getchar ()) != '
') { if (ch>='a' && ch ='A'&&ch='0' && ch <='9') digit++; else if (ch == ' ') space++; else other++; } printf ("字母:%d
", letter); printf ("空格:%d
", space); printf ("数字:%d
", digit); printf ("其它字符:%d
", other);}

源代码如下:
#include "stdio.h"
#include "conio.h"
char *toDaXie(char *s);/*函数--变大写*/
main()
{
char *s;
printf("Input a string please!
");
gets(s);
printf("The result:
%s
",toDaXie(s));
getch();
}
char *toDaXie(char *s)/*函数--变大写的具体内容*/
{
int i;
for(i=0;i96&&s[i]<123)/*如果这个字是小写字母*/
s[i]-=32;/*那就把它变成大写*/
}
return s;}

扩展资料
1、在C++程序开发中,程序员需要使用 for() 循环语句时,常常将循环遍历定义在 for() 内部。
2、C语言程序的“短路表达式”决定了只有 executeStepA() 函数成功才会接着执行 executeStepB() 函数,只有 executeStepB() 函数也成功,才会执行 executeStepC() 函数。

因为字符串中有空格所以不能使用scanf函数来接收键盘输入的字符串,因为scanf遇到空格和回车结束输入,所以需要使用gets来接收键盘输出的字符串,接着依次判断并累加,最后输出即可。

参考代码:

#include <stdio.h>
int main() {
int a=0,b=0,c=0,d=0,f=0,i;
char ch[100];
gets(ch); 
for(i=0;ch[i]!='\0';i++)
{
if(ch[i]>='A'&&ch[i]<='Z')
    a=a+1;
else if(ch[i]>='a'&&ch[i]<='z')
    b=b+1;
else if(ch[i]==32)
c=c+1;
else if(ch[i]>='0'&&ch[i]<='9')
    d=d+1;
else 
f=f+1;
}
printf("a=%d,b=%d,c=%d,d=%d,f=%d
",a,b,c,d,f);
return 0;
}
/*
asdfASDF ADSFDASGasdfads3214325a df
a=12,b=14,c=2,d=7,f=0
*/


#include <stdio.h>
void main()
{
int a=0,b=0,c=0,d=0,f=0;
char ch; //这个是一个字符
scanf("%c",&ch); //即使你把ch声明成了一个字符串数组 scanf 遇到空格 就截断了
while(ch!='CR') //虽然你while了 即便ch 是字符串数组 但是没有后移 CR改为换行
{
if(ch>='A'&&ch<='Z')
a=a+1;
else if(ch>='a'&&ch<='z')
b=b+1;
else if(ch==32)
c=c+1;
else if(ch>='0'&&ch<='9')
d=d+1;
else
f=f+1;
scanf("%c",&ch);
}
printf("a=%d,b=%d,c=%d,d=%d,f=%d\n",a,b,c,d,f);
}

题目要求的是输入一串字符串,而你并没有一个一个去判断是什么。下面是代码,希望可以帮助到你。

#include <iostream>
#include <cstring>
using namespace std;
void main()
{
char string[30];
int character=0,number=0,space=0,other=0;
int i=0;
cin.get(string[0]);
while (string[i++]!='\n')
{
cin.get(string[i]);
//i++;
}
i=0;
while(string[i]!='\n')
{ if (string[i]>='0'&&string[i]<='9') number++;
else if ((string[i]>='A'&&string[i]<='Z')||(string[i]>='a'&&string[i]<='z')) character++;
else if(string[i]==' ') space++;
else other++;
i++;
}
cout<<"字母个数"<<character<<endl;
cout<<"数字个数"<<number<<endl;
cout<<"空格个数"<<space<<endl;
cout<<"其它个数"<<other<<endl;
}

while(ch!='CR')
//改为:
while(ch!='\n')

'CR'应该是字符串吧,问题是你声明存放是各变量,只能存一个数,必须声明数组存放字符串


c语言编程中,怎样输入一个三位数,将其各位数字反序输出,如输入321,输...
include <iostream>#include <stdio.h>#include <math.h>#include <iomanip>using namespace std;int main(){int n;cin>>n;while(n!=0){cout<<n%10;n\/=10;}cout<<endl;return 0;}

C语言中,怎样输入一个字符串,然后对于字符串中每个“字符”进行判断处理...
看看getch函数,是否是你需要的函数 感觉就是你输入字符后,不回显到屏幕上,用*代替

c语言编程输入一个数输出比它大的一个素数
include <stdio.h>int main (){int a;printf("input a number:\\n");scanf("%d",&a);int i,status;while(1){status = 0;a++;for(i=2;i<=a\/2;i++){if(a%i == 0)status =1;}if(status == 0)break;}printf("%d\\n",a);return 0;} ...

C语言问一个问题啊,怎样在电脑输入一个字符时不用敲回车键就可以...
getch():所在头文件:conio.h 函数用途:从控制台读取一个字符,但不显示在屏幕上 函数原型:int getch(void)返回值:读取的字符 用getch()就可以实现不用打回车了 如果要显示内容,直接:char c;c=getch();putchar(c);

c语言输入一个整数(0-9之间),把这个整数转换为它对应的数字字符输出,怎 ...
int main(){ int ch;printf("please input a digital(between 0 and 9):\\n");scanf("%d", &ch);if(ch >= 0 && ch <= 9){ printf("%c", '0'+ch);}else{ printf("input error!\\n");} } 关键的地方是:字符0(也即'0')加上一个整数(不要太大了,即不要超过ASCII的127...

C语言输入一个scanf后 后面程序不执行?
scanf的意思,就是让你输入一个数值并回车 程序不执行,是等待你的输入。每个scanf都是在等待键盘输入。

C语言怎样做●任意输入一个月份(1-12) ,编写自定义函数输出其对应的季...
include<stdio.h> int main(){ int m;char s[4][5]= {"春季","夏季","秋季","冬季"};scanf("%d",&m);\/\/for(m=1; m<13; m++)printf("%d月:%s\\n",m,s[((m+9)%12\/3)]); \/\/+9:3,4,5为春季,+10:2,3,4为春季 return 0;} ...

C语言;输入一个字母输入它的前一位字母和后一位字母。
include<stdio.h>int main(){char c; scanf("%c",&c); if(c>='A'&&c<='Z') {if(c>'A')printf("%c",c-1); if(c<'Z')printf("%c",c+1); } if(c>='a'&&c<='z') {if(c>'a')printf("%c",c-1); if(c<'z')printf("%c",c+1); } return 0;...

用C语言编写程序,输入一个字符,输出它的字符值和ASCII值
1、计算机中的所有数据都是以二进制存储的,因此字符也是以二进制存储且占用一个字节,在c语言中可以把char型当作只有一个字节的有符号整数,8位有符号,最大正值就是127了。2、例如:可以这样使用循环的 include <stdio.h> include <stdlib.h> int main(){ char c;int i;printf("please input ...

c语言 输入一个整数a 若a大于0输出这个数为正整数,小于0输出是负整数...
include <stdio.h>int main(){int a;scanf("%d",&a);if(a>0) printf("正整数");else if(a<0) printf("负整数");else printf("零");return 0;}

巴里坤哈萨克自治县18932899029: C语言中,输入一行以回车结束的字符的代码有哪些? -
邵步复方: //---------------------------------------------------------------------------#include int main(void) { char a; int i=1; while ((a=getchar())!='\n') { printf("%c=>%d\t",a,a); if (!(i++%3)) putchar('\n'); } return 0; }//---------------------------------------------------------------------------

巴里坤哈萨克自治县18932899029: 用C语言编写程序 输入一串字符或句子,以回车结束, -
邵步复方: void main(void) {char szBuffer[1024];memset(szBuffer, 0x00, 0);scanf("%s", szBuffer);int charCount = 0;int numCount = 0;int blankCount = 0; for(int i=0l i<strlen(szBuffer); i++){if((szBuffer[i] >= 'a' && szBuffer[i] <= 'z') || (szBuffer[i] >= 'A' && szBuffer[i] <= 'Z'))charCount++;同理} }

巴里坤哈萨克自治县18932899029: c语言编程题:输入一行字符,并以回车结束 -
邵步复方: #include <stdio.h>void change(char str[40]){ for(int i=0;i<40;i++) { if(str[i]>=97&&str[i]<=122) str[i]-=32; }}void main(){ char str[40]="aAbbbCCC012"; for(int i=0;i<40;i++) { printf("%c",str[i]); } change(str); for( i=0;i<40;i++) { printf("%c",str[i]); }}

巴里坤哈萨克自治县18932899029: 在C语言中 怎么在键盘上给一个字符型的数组输入带回车的字符串 -
邵步复方: 常用的方法有两种:1、通过getchar循环读入每个字符,存到数组中,直到遇到换行符,结束循环并赋值结束符.参考代码:char s[100]; int i; i = 0; while((s[i]=getchar())!='\n') //循环读入,并赋值到数组中,直到遇到回车. i++; s[i+1]='\0';//赋值...

巴里坤哈萨克自治县18932899029: 请问 C语言中回车键应该怎样输入 -
邵步复方: 如果要在程序中表示回车键,只要用转义字符'\n'就可以了. 例如,执行输出语句 printf("Hello!\nToday is Friday!\n"); 后,就可以得到二行内容: Hello! Today is Friday!

巴里坤哈萨克自治县18932899029: 如何用c语言在文本文档中输入回车键 -
邵步复方: fgetc从文件读一个字符 ,回车符是'\n'例如,从test.txt读一行 #include <stdio.h> #include <stdlib.h>int main(void) {FILE * fp;char * name = "test.txt";char c; if( (fp=fopen(name,"rb")) == NULL ){printf("Can not open %s!\n",name);...

巴里坤哈萨克自治县18932899029: 【c语言】有没有一种语法,可以使输入任意一个字符后自动回车进入下一行呢? -
邵步复方: 没有这种语法

巴里坤哈萨克自治县18932899029: C语言中,如何输入一段浮点型数据,然后以回车终止输入. -
邵步复方: do{scanf("%f",&score[i]);i++;a=getchar();if(a == '\n')break;}while(1);

巴里坤哈萨克自治县18932899029: c语言 输入一行字符,以回车作为结束,依次输出大写字母、小写字母、空格、数字字符和其它字符的个数 -
邵步复方: #include<stdio,h> judge(char c[]) { char d; int i=0; while(d=char[i++]!='\0') { if(d>=A&&d<=Z) a[0]++; if(d>=a&&d<=z) a[1]++; if(d==' ') a[2]++; if(d>=0&&d<=9) a[3]++; else a[4]++; } int main() { int a[4]; for(i=0;i<5;i++) a[i]=0; char c[]; while(1) { gets(c); ...

巴里坤哈萨克自治县18932899029: C语言:编写一个程序,接受一个用户输入的一行字符,按回车结束 -
邵步复方: int main() {char str[100],*p;int cout[4]={0};scanf("%[^\n]",&str);p=str;while(*p){if((*p>='A'&&*p<='Z')||(*p>='a'&&*p<='z'))cout[0]++;else if(*p==' ')cout[1]++;else if(*p>='0'&&*p<='9')cout[2]++;elsecout[3]++;p++;}printf("\nletter=%d,...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网