具体问题是:用户输入文本,例如,如果用户输入
hello (spaces) (spaces) world
用户获得的输出是
hello (space) world.
以下是我的代码,可以实现对空格数的调整,我有点困惑,因为我的输出会吃掉第一个字母。我想知道为什么会这样。
代码:
#include <stdio.h>
int main() {
int characters = 0;
while ((characters = getchar()) != EOF) {
if (characters != ' ') {
putchar(characters);
}
if (characters == ' ') {
while ((characters = getchar()) == ' ');
putchar(' ');
}
}
}
输出:
Hello world world world
Hello orld orld orld
答案 0 :(得分:2)
ReactorClientHttpConnector connector = new ReactorClientHttpConnector(
options -> options.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, requestTimeout).compression(true)
.afterNettyContextInit(ctx -> ctx.addHandlerLast(new ReadTimeoutHandler(readTimeout, TimeUnit.MILLISECONDS))));
return WebClient.builder()
.clientConnector(connector)
.baseUrl(hostURL)
.build();
此代码将一直占用字符,直到它占用非空格为止。但是您不想吃任何非空格。一个简单的解决方法:
if (characters == ' '){
while ((characters = getchar()) == ' ');
putchar(' ');
}
现在您要吃字符,直到您吃了一个非空格,然后输出一个空格,然后输出您所吃的非空格字符。