改正程序中的错误并使程序能够正常运行

函数fun完成的是对一个给定字符串,统计其中数字,大小写字母和其他符号的个数功能,在主程序中输入字符串并调用函数fun,接收并输出返回的结果

img

第6行 str改 str[80]
第10行 str[80] 改str
第16行 *pd = *pc = *pt = 0;
第19行 最中间的 && 改 ||

有错误的地方好多:

#include <stdio.h>

void fun(char s[],int *p1,int *p2,int *p3);

int main()
{
    int d,c,t;   
    char str[80];
    printf("input a string:");    
    gets(str);
    fun(str,&d,&c,&t);
    printf("str=[%s]\ndigit=%d\nchar=%d\nother=%d\n",str, d, c, t);
    
    return 0;
}

void fun(char ch[], int *pd, int *pc, int *pt)
{ 
    int k;
    *pd=*pc=*pt=0;
    for (k=0;ch[k]!='\0';k++)
    {
        if ((ch[k]>='A'&&ch[k]<='Z')||(ch[k]>='a'&&ch[k]<='z'))
            *pc += 1;
        else if (ch[k]>='0'&&ch[k]<='9')
            *pd += 1;
        else
            *pt += 1;
    }
}
  1. 第6行: char str[80];
  2. 第16行: *pd = *pc = *pt = 0;
  3. 第19行: if ((ch[k] >= 'A' && ch[k] <= 'Z') || (ch[k] >= 'a' && ch[k] <= 'z'))

#include <stdio.h>

void fun(char *ch,int *p1,int*p2,int*p3);
int main()
{
    int d,c,t;
    char str[80];

    printf( "input a string: ");
    gets(str) ;
    fun(str,&d,&c,&t);
    printf("str=%s digit=%dchar=%dother=%d\n",str,d,c,t);
}
void fun(char* ch, int *pd,int *pc,int *pt)
{
    int k;
    *pd=*pc=*pt=0;
    for (k=0;ch[k] !='\0' ;k++)
    {
        if ((ch[k]>='A'&&ch[k]<='Z')||(ch[k]>='a'&&ch[k]<='z'))(*pc)++;
        else if (ch[k]>='0'&&ch[k]<='9')(*pd)++;
        else (*pt)++;
    }
}

img