新手,自己写的简单题,运行后无法显示输入
程序代码://
#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编辑过]









