C语言程序填空 功能:统计一个字符串中的字母、数字、空格和其它字符的个数。

#include "stdio.h"
main ()
{
char s1[80];int a[4]={0};
int k;
/***********SPACE***********/
【?】;
gets(s1);
/***********SPACE***********/
【?】;
puts(s1);
for(k=0;k<4;k++)
printf("%4d",a[k]);
}
void fun(char s[],int b[])
{
int i;
for (i=0;s[i]!='\0';i++)
if ('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z')
b[0]++;
/***********SPACE***********/
else if (【?'0'<=s[i]&&s[i]<='9'】)
b[1]++;
/***********SPACE***********/
else if (【?' '】 )
b[2]++;
else
b[3]++;
}
请帮我填写剩下的两个空。谢谢!

调试通过

#include "stdio.h"

main ()

{

char s1[80];int a[4]={0};

int k;

/***********SPACE***********/

void fun(char s[],int b[]);

gets(s1);

/***********SPACE***********/

fun(s1,a);

puts(s1);

for(k=0;k<4;k++)

printf("%4d",a[k]);

}

void fun(char s[],int b[])

{

int i;

for (i=0;s[i]!='\0';i++)

if ('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z')

b[0]++;

/***********SPACE***********/

else if ('0'<=s[i]&&s[i]<='9')

b[1]++;

/***********SPACE***********/

else if (s[i]==' ')

b[2]++;

else

b[3]++;

}

字符串在存储上类似字符数组

它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

以上内容参考:百度百科-字符串

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-15
调试通过
#include "stdio.h"
main ()
{
char s1[80];int a[4]={0};
int k;
/***********SPACE***********/
void fun(char s[],int b[]);
gets(s1);
/***********SPACE***********/
fun(s1,a);
puts(s1);
for(k=0;k<4;k++)
printf("%4d",a[k]);
}
void fun(char s[],int b[])
{
int i;
for (i=0;s[i]!='\0';i++)
if ('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z')
b[0]++;
/***********SPACE***********/
else if ('0'<=s[i]&&s[i]<='9')
b[1]++;
/***********SPACE***********/
else if (s[i]==' ')
b[2]++;
else
b[3]++;
}本回答被提问者采纳
相似回答