Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 将一个或多个空格的每个字符串替换为一个空格_C_Getchar_Putchar - Fatal编程技术网

C 将一个或多个空格的每个字符串替换为一个空格

C 将一个或多个空格的每个字符串替换为一个空格,c,getchar,putchar,C,Getchar,Putchar,这已经被问到了,但是我自己做了一个程序,我不知道为什么它不起作用 int c; char blank; while ((c = getchar()) != EOF) { if (c == ' ') { putchar(c); while ((c = getchar()) == ' ') { putchar(''); } } putchar(c); } 基本上,我所做的就是用空来代替空间。但它不起

这已经被问到了,但是我自己做了一个程序,我不知道为什么它不起作用

int c;
char blank;


while ((c = getchar()) != EOF) {
    if (c == ' ') {
        putchar(c);
        while ((c = getchar()) == ' ') {
            putchar('');
        }
    }
    putchar(c);
}

基本上,我所做的就是用空来代替空间。但它不起作用。如果我将“1”替换为“1”,它将用1替换空格,因此我不知道问题出在哪里

代码中的具体错误在于您使用
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);
    }
    }

您希望
putchar(“”)
做什么<代码>'不是有效的字符常量。如果不想输出任何内容,只需什么都不做。如果不想输出字符,根本不要调用
putchar()
。另外一个问题:循环中的第二个
getchar
也可以返回
EOF
,因此,您可能必须跳过条件
if
块之后的
putchar
。有趣的事实是:整个程序可以简化为一行,空
for
循环<代码>用于(char s[99];scanf(“%s”,s)=1;printf(“%s”,s))Nice solution@davide虽然这也会从inputCorner中删除换行符:如果输入以
x
结尾,代码将尝试打印
'x'
'
EOF
。欢迎使用堆栈溢出。没有任何解释的代码很少有帮助。堆栈溢出是关于学习,而不是提供盲目复制和粘贴的代码片段。请编辑您的问题并解释它如何回答所问的特定问题。看见