怎么样用c语言程序,输入一串字符,以#结尾,并统计其中数字,字母,空格和其他字符的个数?

如题所述

下面是完整程序。输入一串 字符,可以是 大小写字母,数字,符号(含任意个数 回车,换行,空白 等等) ,一旦拍入 #号,就输出 数字个数,字母个数,空格 和其它
#include <stdio.h>
int main(){
char s[1000];
int c;
int i,n=0;
int n_num=0, n_letter=0, n_sp=0, n_other;
printf("input your strings and press # as the end:\n");
while(1){
c = _getch();
if (c == '#') {s[n]='\0'; break;};
if (c ==' ') n_sp++;
else if (c>='0' && c <='9') n_num++;
else if ( (c>='a' && c<='z') || (c>='A' && c<='Z')) n_letter++;
else n_other++;
s[n]=c;n++;
}
printf("n_num=%d n_letter=%d n_sp=%d n_other=%d\n",n_num, n_letter,n_sp,n_other);
printf("you input was:\n%s\n",s);
//for (i=0;i<n;i++) printf("%c",s[i]);
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

...统计出大写字母,小写字母,空格,数字和其他字符的
因为字符串中有空格所以不能使用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...

...统计出大写字母,小写字母,空格,数字和其他字符?
C代码和运行结果如下:统计结果正确,望采纳~附源码:include <stdio.h> int main() { char s[100];fgets(s, 100, stdin); \/\/ 输入一行字符,包括行尾的'\\n'int i = 0, upper = 0, lower = 0, space = 0, digit = 0, other = 0;while (s[i] != '\\n') { if (s[i] ...

...分别统计出其中英文字母、空格、数字和其他字符的个数
} printf("字母个数%d,数字个数%d,空格个数%d,其余符号个数%d\\n",a,b,c,f);return 0;} 这是我改的 ~scanf("%s",e); 这样输入字符串 遇到空格就会停止的 所以用gets for(d=0;e[d]!='\\n';d++) 字符串结束应该是\\0 而\\n是换行 这样就ok了 ...

...分别统计其中英文字母、空格、数字和其他字符的个数。
z++;scanf("%c",&ch); \/\/加这一句是让程序正常运行,能连续输入字符 } printf("字母个数是%d, 空格个数是%d, 数字个数是%d, 其他字符个数是%d",w,k,n,z);system("PAUSE");}

c语言 从键盘输入一行字符,分别统计其中数字字符,字母字符和其他字符...
inta,b,c,ch;a=b=c=0;\/\/计数器初始化为0.while((ch=getchar())!='\\n')\/\/循环读取字符,到换行结束。{ if(ch>='0' && ch<='9')\/\/数字 a++;else if((ch>='a' && ch<='z')||(ch>='A' && ch<='Z'))\/\/字母 b++;else\/\/其它 c++;} printf("%d%d%d\\n",a,b,...

...分别统计出其中英文字母、空格、数字和其他字符的个数.
void main(){ char line[30];int i,count1=0,count2=0,count3=0,count4=0;printf("\\n请输入一行字符: ");gets(line);i=0;while(line[i]!='\\0'){ if(((line[i]>=97) && (line[i]<=122))||((line[i]>=65) && (line[i]<=90))){ count1++;} else if(line[i]==...

...输入一串字符(以回车键结束),统计其中数字、字母和空格字符的...
string str="abc123 ";int t1=0;\/\/数字个数 int t2=0;\/\/字母个数 int t3=0;\/\/空格数 for(int i=0;i<str.length;i++){ if(用正则表达式来判定str.substring(i,1)的值是否为数字){ t1++;} else if(用正则表达式来判定str.substring(i,1)的值是否为字母){ t2++;} else if(用...

...英文字母、空格、数字和其它字符的个数。(用C语言FOR循环写)_百度知...
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')word++;else if(a[i]>='0'&&a[i]<='9')num++;...

...统计求出其中英文字母、空格、数字和其他字符的个数并输出结果_百度...
void main(){ char s;int i=0,j=0,k=0,m=0,da=0,xiao=0;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存入字母数*\/ ...

...分别统计出其中英文字母,空格,数字和其他字符的个数.(C语言)_百度...
参考代码:include<stdio.h>int main(){char str[100];int word = 0, blank = 0, num = 0, other = 0;int i = 0;gets(str);while (str[i] != '\\0'){if ((str[i]>= 'a' && str[i] <= 'z') || (str[i]>= 'A' && str[i] <= 'Z')){word++;}else if ((...

相似回答