解释代码的作用就行了,我想不通
#include <stdio.h>#include<ctype.h>
int main()
{
int i,a,b,c,d;
a=b=c=d=0;
char str[50];
printf("请输入一个字符组:\n");
gets(str);
for(i=0;str[i]!=0;i++)
{ if (isalpha(str[i]))
a+=1;
else if(isdigit(str[i]))
b+=1;
else if (isspace(str[i]))
c+=1;
else if (ispunct(str[i]))
d+=1;
}
printf("字母有%d个,数字有%d个,空格有%d个,标点有%d个\n",a,b,c,d);
return 0;
}加颜色的部分帮忙解释一下,还有那个for循环中的判断条件str[i]!=0,这个判断条件我不明白怎么执行的,还有,那个判断条件可以换成str[i];效果居然一样,我快要崩溃咯,下面是换了条件后的代码,我对那两个判断条件的效果等同不明白
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[201];
printf("请输入一个长度不超过200的字符串: \n");
gets(str);
int n1,n2,n3,n4;
n1=n2=n3=n4=0;
for(int i=0;str[i];i++)
{
if (isalpha(str[i]))
n1++;
else if (isdigit(str[i]))
n2++;
else if (isspace(str[i]))
n3++;
else if (ispunct(str[i]))
n4++;
}
printf("该字符串的字母个数:%d,数字个数:%d, 空格个数:%d,标点个数:%d\n\n",n1,n2,n3,n4);
return 0;
}还有一个让我比较头疼的地方是在输入字符组的时候,之前我一直都是用scanf("%s",str),调试出错后,我又换了一种输入方式:用for语句输入:
for(i=0;i<100;i++)
scanf("%c",&str[i]);或者这种方式:
for(i=0;i<100;i++)
scanf("%c",str[i]);但一样是没结果啊,郁闷,太郁闷了,这是想不出为什么会这样啊
[ 本帖最后由 love云彩 于 2012-12-19 17:05 编辑 ]