这段代码到底哪出问题了
设计并测试一个函数,从一行输入中把一个单词读入一个数组中,并丢弃输入行中的其余字符.该函数应该跳过第1个非空白字符前面的所有空白.将一个单词定义为没有空白 制表符或换行符的字符序列.#include<stdio.h>
#include<ctype.h>
#define LEN 80
char * getword(char * str,int n);
int main(void)
{
char input[LEN];
while (getword(input,LEN) != NULL)
{
puts(input);
}
puts("Done!");
getchar();
getchar();
return 0;
}
char * getword(char * str,int n)
{
char ch;
int i=0;
char * orig;
orig = str;
while ((ch = getchar()) != EOF && isspace(ch)) //处理字符串前面的空白字符,若出现空白字符,则丢弃
{
continue;
}
if (EOF == ch)
{
return NULL;
}
else
{
*(str+i) = ch; //确定字符串的首字符
}
for (; i < n; i++)
{
while ((ch = getchar()) != EOF && !isspace(ch)) //将输入的非空白字符存入数组
{
*(str+i) = ch;
}
}
*(str+i) = '\0'; //将字符串结束标识存入数组
if (EOF == ch)
{
return NULL;
}
else
{
while (ch != '\n') //处理多输入的字符
{
ch = getchar();
}
return orig;
}
}