这个程序应该用x替换两个空格,只使用getchar()和putchar()。我的方法是将空间存储在缓冲区中,然后打印出来。但是程序用一个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);
}
}
}
关于c - 仅使用putchar和getchar用'x'替换两个空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49836613/