69,381
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
int main()
{
int s[50], *p, i;
int upp, low, spa, dig, oth;
i = upp = low = spa = dig = oth = 0;
printf("Input string: \n");
while ((s[i]=getchar()) != '\n')
{
i++;
}
p = s;
while (*p != '\n')
{
if (*p>='A' && *p<='Z')
{
upp++;
}
else if (*p>='a' && *p<='z')
{
low++;
}
else if (*p == ' ')
{
spa++;
}
else if (*p>='0' && *p<='9')
{
dig++;
}
else
{
oth++;
}
p++;
}
printf("upp = %d\n", upp);
printf("low = %d\n", low);
printf("spa = %d\n", spa);
printf("dig = %d\n", dig);
printf("oth = %d\n", oth);
return 0;
}
#include <stdio.h>
int main()
{
int s[50], *p;
int upp, low, spa, dig, oth;
upp = low = spa = dig = oth = 0;
printf("Input string: \n");
scanf("%s", s); //为什么不能用字符串输入格式
p = s;
while (*p++ != '\n') //我把上面改成正确代码的格式,这里用 *p++
//发现输出变成了:0 6 2 6 3
{
if (*p>='A' && *p<='Z')
{
upp++;
}
else if (*p>='a' && *p<='z')
{
low++;
}
else if (*p == ' ')
{
spa++;
}
else if (*p>='0' && *p<='9')
{
dig++;
}
else
{
oth++;
}
}
printf("upp = %d\n", upp);
printf("low = %d\n", low);
printf("spa = %d\n", spa);
printf("dig = %d\n", dig);
printf("oth = %d\n", oth);
return 0;
}