繁体   English   中英

仅使用putchar和getchar用'x'替换两个空格

[英]replacing two spaces with an 'x' using only putchar and getchar

该程序应仅使用getchar()和putchar()将两个空格替换为x。 我的方法是将空间存储在缓冲区中,然后将其打印出来。 但是该程序用x替换每个空格。 有人可以帮我吗?

#include <stdio.h>
#define MAX 2

char arr[MAX];
int ret = 0;
char second;

int main()
{
  for(int i=0; ; )
  {
    if ( (ret = getchar())!= EOF)  
    {
         putchar(ret);
    }
    if(ret==' '&&second==' ')
    {
      arr[i]=ret;
      arr[i]='x';
      putchar(arr[i]);
    }   
  }
  return 0;
}

读取字符时,请先检查它是否为空格。 如果没有,则只打印它。 如果读取了另一个字符,则如果第二个字符是空格,则打印x否则打印一个空格和您刚刚读取的字符。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM