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

问题描述

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...