首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么结果后面会出现中文啊该如何处理

2012-04-25 
为什么结果后面会出现中文啊题目是读取一行里的一串字符到数组,其中不含空格,制表符和换行符,并丢弃该行中

为什么结果后面会出现中文啊
题目是读取一行里的一串字符到数组,其中不含空格,制表符和换行符,
并丢弃该行中其他字符。
我运行的结果到空格,制表符或换行符就截断了,不过后面出现一串中文
  “烫烫烫烫烫烫烫烫烫烫烫烫?”
这是为什么,请大侠帮解答下啊


#include <stdio.h>
#include <ctype.h>
#define LEN 30
char * getword(char * str);

int main(void)
  {

char input[LEN];

while(getword(input)!= NULL)
puts(input);
printf("Done\n");

return 0;

  }


char * getword(char * str)
{
int ch;

while((ch = getchar()) != EOF && !isspace(ch))
*str++ = ch;
*str=='\0';

if (ch == EOF)
return NULL;
else 
{
while(ch !='\n')
ch = getchar();
return str;
}
}

[解决办法]
哈哈 你的str='\0';这句错了,你成赋值了!!!
[解决办法]

根据你说的情况改了,正确的应该是:
#include <stdio.h>
#include <ctype.h>
#define LEN 30
char * getword(char * str);

int main(void)
{

char input[LEN];

while(getword(input)!= NULL)
puts(input);
printf("Done\n");

return 0;

}


char * getword(char * str)
{
int ch;

while((ch = getchar()) != EOF && !isspace(ch))
*str++ = ch;
*str='\0';//你这里出错了,不是==,而是=

if (ch == EOF)
return NULL;
else
{
while(ch !='\n')
ch = getchar();
return str;
}
}

热点排行