c语言 输入一串字符里面有数字,字母,空格以及其它符号,判断各类符号的数目。

如题所述

#include <stdio.h>
#define N 100
int cal(char *str,int counter[]){
int i=0;
char c;
while((c=str[i++]))
{
if('0'<=c && c<='9')counter[0]++;
else if(('a'<=c && c<='z') || ('A'<=c && c<='Z'))counter[1]++;
else if(c==' ')counter[2]++;
else counter[3]++;
}
return 0;
}
int main()
{
char str[N],c;
char *tou[]={"数字","字母","空格","其它"};
int i=0;
int counter[4]={0};//数字,字母,空格以及其它符号的数量
printf("输入字符串:");
while((c=getchar())!='\n')str[i++]=c;
str[i]=0;
cal(str,counter);
for (i=0;i<4;i++)
{
printf("%s:%d\n",tou[i],counter[i]);
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-01
#include <stdio.h>
#include <string.h>
void main()
{
char s1[30];
gets(s1);
int num=strlen(s1);
int a=0;
int b=0;
int c=0;
int d=0;
int e=0;

for(int i=0;i<num;i++)
{

if(s1[i]==' ')
a++;
else if(s1[i]>='0'&&s1[i]<='9')
b++;
else if(s1[i]>=65&&s1[i]<=90)
c++;
else if(s1[i]>=97&&s1[i]<=122)
d++;
else
e++;
}
printf("小写字母有%d个,大写字母有%d个,数字有%d个,空格有%d个,特殊字符有%d个",d,c,b,a,e);

}
第2个回答  2013-11-01
可以利用字符的ASC代码范围来判断
void count(string){
int i;

int shuzi=0;
int zimu=0;

int kongge=0;
//其他字符同理
for(i=0;i<string.length-1;i++)
if(string[i]>=‘0’&&string[i]<='9')
shuzi++;

else if(string[i]>=‘a’&&string[i]<='z'||string[i]>=‘A’&&string[i]<='Z')

zimu++;
else if(string[i]=' ')

kongge++
//其他同理

}追问

我水平太低,有点看不懂。。初学,为啥没有printf函数呢?

相似回答