用c语言编写:编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格和其他字符的个数

在主函数中输入字符串及输出上述结果... 在主函数中输入字符串及输出上述结果 展开
 我来答
木芽锺
推荐于2017-12-15 · TA获得超过503个赞
知道小有建树答主
回答量:99
采纳率:100%
帮助的人:113万
展开全部
#include <stdio.h>
main()
{
char a[30];
void fun_char(char a[]);
printf("请输入字符串:");
gets(a);
fun_char(a);
}
void fun_char(char a[])
{
int i,letter=0,digit=0,space=0,other=0;
for(i=0;a[i]!='\0';i++)
{
if((a[i]<='z'&&a[i]>='a')||(a[i]<='Z'&&a[i]>='A'))
letter++;
else if(a[i]<='9'&&a[i]>='0')
digit++;
else if(a[i]==' ')//或者else if(a[i]==32)
space++;
else
other++;
}
printf("letter=%d;\tdigit=%d;\tspace=%d;\tother=%d\n",letter,digit,space,other);
}
carter2000
2011-05-15 · TA获得超过133个赞
知道小有建树答主
回答量:64
采纳率:0%
帮助的人:126万
展开全部
#include <ctype.h>
#include <stdio.h>

void CountChar(char* pszInput)
{
int iAlpha = 0;
int iSpace = 0;
int iNumber = 0;
int iOther = 0;
char c = 0;
if (NULL == pszInput)
{
printf ("参数错误!\n");
}

c = *pszInput;
while ('\0' != c)
{
if (isalpha(c))
{
++iAlpha;
}
else if (isspace(c))
{
++iSpace;
}
else if (c >= '0' && c <= '9')
{
++iNumber;
}
else
{
++iOther;
}
c = *(++pszInput);
}

printf ("字母个数:%d\n", iAlpha);
printf ("数字个数:%d\n", iNumber);
printf ("空格个数:%d\n", iSpace);
printf ("其他字符个数:%d\n", iOther);
}

int main()
{
CountChar("asdf4898 adff !@!#f 8erfe9aa8ser 98");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
敬问鲆y7
2020-06-17
知道答主
回答量:1
采纳率:0%
帮助的人:606
展开全部
不用全局变量
#include<stdio.h>
int main()
{
void tongji(char s[]);
char a[20];
printf("请输入一行字符串:");
gets(a);
tongji(a);
return 0;
}
void tongji(char s[])
{
int d=0,x=0,k=0,z=0,q=0;
int i;
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='A'&&s[i]<='Z') d++;
else if(s[i]>='a'&&s[i]<='z') x++;
else if(s[i]==' ') k++;
else if(s[i]>='0'&&s[i]<='9') z++;
else q++;
}
printf("其中大写字母有%d个,小写字母有%d个\n空格有%d个,数字有%d个,其他字符有%d个\n",d,x,k,z,q);
}
用全局变量
#include<stdio.h>
int d=0,x=0,k=0,z=0,q=0;
void main()
{
void tongji(char [20]);
char a[20];
printf("请输入一串字符:");
gets(a);

tongji(a);

printf("其中大写字母有%d个\n小写字母有%d个\n空格有%d个\n数字有%d个\n其他字符有%d个\n",d,x,k,z,q);
}
void tongji(char s[20])
{
int i;
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='A'&&s[i]<='Z') d++;
else if(s[i]>='a'&&s[i]<='z') x++;
else if(s[i]==' ') k++;
else if(s[i]>='0'&&s[i]<='9') z++;
else q++;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雷晓520
2011-05-15 · 超过14用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:46万
展开全部
都很好,很强大,我自愧不如的了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友967cd1a
2020-11-22
知道答主
回答量:2
采纳率:0%
帮助的人:1183
展开全部
#include<stdio.h>
int main()
{
char a[100];
void fun_char(char a[]);
gets(a);
fun_char(a);
}
void fun_char(char a[])
{
int x=0,z=0,p=0,q=0;
int i;
for(i=0;a[i]!='\0';i++)
{
if(a[i]>='A'&&a[i]<='Z'||a[i]>='a'&&a[i]<='z') x++;
else if(a[i]>='0'&&a[i]<='9') z++;
else if(a[i]==' ') p++;
else q++;
}
printf("字母有%d\n空格有%d个\n数字有%d个\n其他字符有%d个\n",x,z,p,q);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式