#include<stdio.h>
void count(char *a,int*dx, int*xx, int*num , int*kg, int*qt)
{
while (*a)//遍历字符串
{
if (*a >= 'A' && *a <= 'Z')
(*dx)++;
else if (*a >= 'a' && *a <= 'z')
(*xx)++;
else if (*a >= '0' && *a <= '9')
(*num)++;
else if (*a ==" ")
(*kg)++;
else (*qt)++;
}
}
int main()
{
int dx = 0, xx = 0, num = 0, kg = 0, qt = 0;
char a[20];
gets(a);
count(a,&dx,&xx,&num,&kg,&qt);
printf("大写字母个数=%d\n小写字母个数=%d\n数字的个数=%d\n空格的个数=%d\n其他的个数=%d", dx, xx, num, kg, qt);
}
供参考:
#include<stdio.h>
void count(char *a,int*dx, int*xx, int*num , int*kg, int*qt)
{
while (*a)//遍历字符串
{
if (*a >= 'A' && *a <= 'Z')
(*dx)++;
else if (*a >= 'a' && *a <= 'z')
(*xx)++;
else if (*a >= '0' && *a <= '9')
(*num)++;
else if (*a == ' ')// if (*a == " ") 字符是单引号 修改
(*kg)++;
else (*qt)++;
a++; // 指针遍历,a 需要自增 修改
}
}
int main()
{
int dx = 0, xx = 0, num = 0, kg = 0, qt = 0;
char a[20];
gets(a);
count(a,&dx,&xx,&num,&kg,&qt);
printf("大写字母个数=%d\n小写字母个数=%d\n数字的个数=%d\n空格的个数=%d\n其他的个数=%d",
dx, xx, num, kg, qt);
return 0;
}
因为死循环了,函数while循环末尾要加上a++;才行
a指针在while循环中没有改变,程序死循环