| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1171 人关注过本帖
标题:这段代码到底哪出问题了
只看楼主 加入收藏
dpj149
Rank: 2
等 级:论坛游民
帖 子:14
专家分:28
注 册:2018-2-9
收藏
 问题点数:0 回复次数:1 
这段代码到底哪出问题了
设计并测试一个函数,从一行输入中把一个单词读入一个数组中,并丢弃输入行中的其余字符.该函数应该跳过第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;
    }
}
搜索更多相关主题的帖子: 字符 空白 char str getchar 
2018-07-19 19:27
no1xijin
Rank: 9Rank: 9Rank: 9
来 自:江西
等 级:贵宾
威 望:20
帖 子:211
专家分:1207
注 册:2015-7-8
收藏
得分:0 
char * getword(char * str,int n)这个函数的while语句处理不正确

while ((ch = getchar()) != EOF && isspace(ch)) //处理字符串前面的空白字符,若出现空白字符,则丢弃
{
    continue;
}

126邮箱联系方式:no1xijin@126. com
2018-07-20 10:12
快速回复:这段代码到底哪出问题了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014650 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved