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