8楼有错误呀
总共有三处,
第一处:对数组赋值'\0'时候应该是str[i],而不是str[i+1],
第二个if语句中应该是str[i]>=65&&str[i]<=90||str[i]>=97&&str[i]<=122 两处错误,
一个是65不是62ASC表没弄明白,还有str[i]<=90打错了,应该是笔误吧,但是不知道结果怎么出来,没有提示错误。
从8楼基础上改进的
代码是#include<stdio.h>
#include<stdlib.h>
int main()
{
int i=0,mu=0,ch=0,sp=0;
char * str;
str = (char *)calloc(20,sizeof(char));
printf("请输入15个字符\n");
do{
str[i] = getchar();
i++;
}while(str[i-1]!='\n');
str[i] = '\0';
i = 0;
while(str[i]!='\0')
{
if(str[i]==' ') sp++;
if(str[i]>=65&&str[i]<=90||str[i]>=97&&str[i]<=122) ch++;
if(str[i]>=48&&str[i]<=57) mu++;
i++;
}
printf("这个字符串里面有%d个空格\n",sp);
printf("这个字符串里面有%d个字母\n",ch);
printf("这个字符串里面有%d个数字\n",mu);
free(str);
return 0;
}
总共有三处,
第一处:对数组赋值'\0'时候应该是str[i],而不是str[i+1],
第二个if语句中应该是str[i]>=65&&str[i]<=90||str[i]>=97&&str[i]<=122 两处错误,
一个是65不是62ASC表没弄明白,还有str[i]<=90打错了,应该是笔误吧,但是不知道结果怎么出来,没有提示错误。
从8楼基础上改进的
代码是#include<stdio.h>
#include<stdlib.h>
int main()
{
int i=0,mu=0,ch=0,sp=0;
char * str;
str = (char *)calloc(20,sizeof(char));
printf("请输入15个字符\n");
do{
str[i] = getchar();
i++;
}while(str[i-1]!='\n');
str[i] = '\0';
i = 0;
while(str[i]!='\0')
{
if(str[i]==' ') sp++;
if(str[i]>=65&&str[i]<=90||str[i]>=97&&str[i]<=122) ch++;
if(str[i]>=48&&str[i]<=57) mu++;
i++;
}
printf("这个字符串里面有%d个空格\n",sp);
printf("这个字符串里面有%d个字母\n",ch);
printf("这个字符串里面有%d个数字\n",mu);
free(str);
return 0;
}