用一个空格替换一个或多个空格的每个字符串

问题描述

这已经有人问过了,但我自己做了一个程序,我不知道为什么它不起作用。

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);
    }
    }

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...