| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1693 人关注过本帖
标题:新手,自己写的简单题,运行后无法显示输入
只看楼主 加入收藏
bxe
Rank: 1
等 级:新手上路
帖 子:57
专家分:7
注 册:2019-3-21
结帖率:72.22%
收藏
 问题点数:0 回复次数:4 
新手,自己写的简单题,运行后无法显示输入
程序代码:
//
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int main(void)
{
    char *buffer = NULL;
    char *string = NULL;
    int *count = 0;


    while(*fgets(*buffer, 100, stdin) !='\0')
    {
        *count=strlen(*buffer);
        for(int i=0; i<*count; i++)
        {
            if(isalpha(*(buffer+i)) !=0)
                *(string+i) = *(buffer+i);
        }
    }
    printf("%s",*string);
    return 0;
}
习题7.3 编写一个程序,从键盘读入一个字符串,显示删除了所有空格和标点符号的字符串。所有的操作都使用指针完成。
答案网上是有的,但我看简单就试着写了下,
肯定有不少错误,但最首先,运行后,输入什么都不显示,先问下这是什么问题?

预谢

程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int main(void)
{
    char *buffer[100] = {NULL};
    char *string = NULL;
    int *count = 0;


    while(*fgets(buffer, 100, stdin) !='\0')
    {
        *count=strlen(buffer);
        for(int i=0; i<*count; i++)
        {
            if(isalpha(*(buffer+i)) !=0)
                *(string+i) = *(buffer+i);
                printf("return");
        }
    }
    printf("%s",string);
    return 0;
}
改了一下,还是不行,,把while()中buffer前的* 去掉后,显示光标和输入了,但输入后回车还是无结果,而且,似乎不能主动结束输入(!='\0'),书上是这么写的啊
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int main(void)
{
    char *buffer = NULL;
    char *string = NULL;
    int *count = 0;

    buffer = (char*)malloc(100*sizeof(char));
    string = (char*)malloc(100*sizeof(char));

    while(  fgets(buffer, 100, stdin) !='\n' )
    {

        for(int i=0; i<=100; i++)
        {
            if(isalpha(*(buffer+i)) !=0)
                *(string+i) = *(buffer+i);

        }
    }
    printf("%s",string);
    free(buffer);
    free(string);
    return 0;
}
又改了下,删掉了strlen(),但程序似乎无法结束输入,while(  !='\n'),请问哪里错了?


[此贴子已经被作者于2019-4-20 00:02编辑过]

搜索更多相关主题的帖子: include int char buffer string 
2019-04-19 23:02
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
每次输入一串,那就用一个串作为结束输入标志,如输入END/EXIT/QUIT或空串就结束。
2019-04-20 05:30
汪瑞
Rank: 1
等 级:新手上路
帖 子:16
专家分:9
注 册:2018-10-21
收藏
得分:0 
2019-04-21 23:40
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1689
专家分:4262
注 册:2007-12-27
收藏
得分:0 
fgets的返回值并不是字符,不能用来和字符进行比较。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2019-04-22 09:01
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2019-04-22 09:13
快速回复:新手,自己写的简单题,运行后无法显示输入
数据加载中...
 
   



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

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