while循环无法跳出

char *pr( char a[], int n )
{

int i = 0;
while( i < n )
{
a[i] = getchar();
i++;
if( a[i] == '\n' || a[i] == ' ' || a[i] == '\t' )
break;
}
a[i] = '\0';
char *ch;
ch = a;
putchar('\n');
return ch;
}
这个函数在执行的时候 想判断a[i]为空白符时就退出循环 但是实际执行时 a[i]为空格或换行却没有跳出循环 而是继续执行 给a[i]赋值 不理解 求大神解答

先i自加了。 

导致判断的是下一个。

向前移动一行就好了。这样

while( i < n )
{
a[i] = getchar();
if( a[i] == '\n' || a[i] == ' ' || a[i] == '\t' )
break;
i++;
}
温馨提示:答案为网友推荐,仅供参考
相似回答