编写一函数 void count(char str[ ]),由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符 10

#include<stdio.h>inti=0,j=0,k=0,m=0;voidcount(charstr[]);intmain(){charstr1[100];prin... #include<stdio.h>int i=0,j=0,k=0,m=0;void count(char str[ ]);int main(){ char str1[100]; printf(""); count(str1); printf("字母有:%d个\n数字有:%d个\n空格有:%d个\n其他字符有:%d个\n",i,k,j,m);}void count(char str[]){ gets (str); for(;str[i]!='\0';i++) {if(str[i]==' ') j++; else if((str[i]<='z'&&str[i]>='a')||(str[i]<'Z'&&str[i]>'A')) i++; else if(str[i]<58&&str[i]>47) k++; else m++; }}有问题, 展开
 我来答
walkerna
2018-12-12 · 超过19用户采纳过TA的回答
知道答主
回答量:50
采纳率:60%
帮助的人:9.2万
展开全部

你的i值重复了,在count函数中i代码操作到的下标,也代表字母的个数。

应改为

#include<stdio.h>
int n=0,j=0,k=0,m=0;
void count(char str[ ]);
int main()
{
char str1[100];
printf("");
count(str1);
printf("字母有:%d个\n数字有:%d个\n空格有:%d个\n其他字符有:%d个\n",n,k,j,m);
}
void count(char str[])
{
gets (str);
for(int i=0;str[i]!='\0';i++)
{
if(str[i]==' ')
j++;
else if((str[i]<='z'&&str[i]>='a')||(str[i]<'Z'&&str[i]>'A'))
n++;
else if(str[i]<58&&str[i]>47) k++;
else m++; 
}
}
百度网友bcee5c2
2018-12-12 · TA获得超过1959个赞
知道大有可为答主
回答量:5621
采纳率:84%
帮助的人:280万
展开全部
1. #includevoid count(char *str);int letters=0,space=0,digit=0,others=0;int main(void){ char str[100]; printf("Input a string:\n"); gets(str); count(str); printf("char=%d\nspace=%d\ndigit=%d\nothers=%d\n",letters,space,digit,others); return 0;}void count(char *str){ while(*str!='\0') { if(*str>='a'&&*str='A'&&*str='0'&&*str='a'&&*str='A'&&*str='0'&&*str<='9') digit++; else others++; str++; } printf("char=%d\nspace=%d\ndigit=%d\nothers=%d\n",letters,space,digit,others);}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式