C语言问题,请高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/07 16:17:49
#include<stdio.h>
void main()
{
char a[100],c;
int word,i;
gets(a);
word=0;
for(i=0;c=a[i];i++)
{
if(c==' ') ;
else word++;
}
printf("%d",word);
getch();
}
这里面在for()里面有个C=a[i],为什么一定要这样定义后面的比较才正确,直接用a[i]==' ';为什么就是错误的~~~~请高手帮忙

#include <stdio.h>
int main()
{
int word, i;
char a[100];
gets(a);
word = 0;
for(i=0; a[i]; i++)
{
if( a[i] == ' ') ;
else word ++;
}
printf("%d\n", word);
}

直接用a[i] == ' ' 是可以的
c = a[i] 是个等号表达式.
这个语句有两个功能,
1:把a[i]的值赋给c,
2:返回true(1) 或者 false(0)(这个主要看a【i】是不是0,是0返回false,否则返回true)

可以.但不能写在那里了.可以这样写:
for(i=0;;i++)这样写就是控制条件为空.也可以的.
{
if(a[i]=='')注意:这里不能用分号的.
}
不知这样说,你能不能明白.朋友.