所以这是我的代码到目前为止,我试图将多个空格和制表符替换为单个空格。输入是多行,有多个制表符和空格(包括混合制表符和空格句子)。写完这篇文章后我陷入了困境:
#include <stdio.h>
#define NONBLANK 'a'
main(){
int c, lastc;
lastc = NONBLANK;
while (( c = getchar()) !=EOF) {
if (c != ' ' || lastc !=' '){
if (c != '\t' || lastc !='\t'){
putchar(c);
lastc = c;}
}
}
}
}
答案 0 :(得分:0)
问题是getchar()
在键入输入时回显输入,通过回显您想要压缩的空格和制表符来使您感到困惑。使用非回显getch()
尝试此操作。我没有使用EOF
结束,但返回,请按照您的意愿进行实验。
#include <stdio.h>
#include <conio.h>
int main(void)
{
int c, lastc = -1;
while ((c = getch()) != '\r') {
if (c != ' ' && c != '\t'){
if (lastc == ' ' || lastc == '\t')
putchar(' ');
putchar(c);
}
lastc = c;
}
return 0;
}
请注意您对main()
的错误声明。