int d,c,t;
char str[80];
void fun(char s[],int *p1,int *p2,int *p3);
printf("input a string:");
gets(str);
fun(str[80],d,c,t);
printf("str=%s digit=%d char=%d other=%d\n",str,d,c,t);
} 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)++;
}
}帮你调试好了
#include <stdio.h>
void main()
{
int d, c, t;
char str[80];
void fun(char s[], int* p1, int* p2, int* p3);
printf("input a string:");
gets(str);
fun(str, &d, &c, &t);
printf("str=%s digit=%d char=%d other=%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)++;
}
}
你的调用函数错误了,fun(str[80],d,c,t);
应该更改为fun(str,&d,&c,&t);
函数传参要传入地址信息
#include <stdio.h>
int main() {
int d, c, t;
char str[80];
void fun(char s[], int* p1, int* p2, int* p3);
printf("input a string:");
gets(str);
fun(str, &d, &c, &t);
printf("str=%s digit=%d char=%d other=%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') )
(*pc)++;
else if ( (ch[k] >= 'a' && ch[k] <= 'z'))
(*pc)++;
else if (ch[k] >= '0' && ch[k] <= '9')
(*pd)++;
else
(*pt)++;
}
}
谢谢大家
void fun() *改为& 试试