问题描述
这已经有人问过了,但我自己做了一个程序,我不知道为什么它不起作用。
int c;
char blank;
while ((c = getchar()) != EOF) {
if (c == ' ') {
putchar(c);
while ((c = getchar()) == ' ') {
putchar('');
}
}
putchar(c);
}
基本上,我所做的就是用空替换空间。但它不起作用。如果我用 '1' 而不是 '' 它会用 1s 替换空格,所以我不知道有什么问题
解决方法
您代码中的具体错误在于您使用 putchar()
函数的方式。使用 putchar()
时必须在里面放一个字符,例如 putchar('a')
,但不能留空。这就是您收到错误的原因:
错误:空字符常量
基本上,putchar()
必须在单引号之间放置一个字符和任何内容:''
,不是字符。
要修复您的代码:您应该完全删除 putchar('')
行,这样您的代码将如下所示:
while ((c = getchar()) != EOF) {
if (c == ' ') {
putchar(c);
while ((c = getchar()) == ' ') {
}
}
putchar(c);
}
,
#我想推荐我的代码:
int c,nb=0;
while((c=getchar())!=EOF){
if(c==' '){
++nb;
if(nb>1){
continue;
}
putchar(c);
}
if(c!=' '){
nb=0;
putchar(c);
}
}