求教各位大神一个C语言的问题
具体的题是这样的: 用户输入文本, 举一个例子,假如用户输入hello(空格空格空格)world. 用户得到的输出结果是hello(空格)world.下面是我的具体代码,空格数量的调节已经可以实现,我有一点疑惑的是因为我的输出会吃掉首字母。请教一下为什么会有这种现象?
代码:
#include <stdio.h>
int main(){
int characters = 0;
while ((characters = getchar())!= EOF){
if (characters != ' '){
putchar(characters);
}
if (characters == ' '){
while ((characters = getchar()) == ' ');
putchar(' ');
}
}
}
运行结果:
本帖最后由 TyCk 于 2018-12-19 12:34 编辑
if (characters == ' '){
while ((characters = getchar()) == ' '); 这里,当读取到的字符不是空格的时候,也就是你的第二个单词的首字母时,退出了循环,但未对这个字母进行输出,所以就丢掉了。
putchar(' ');
}
解决的话,你可以在putchar(' ');下面再加一句 putchar(characters),把首字母打印出来。 #include <stdio.h>
int main()
{
int characters = 0;
while ((characters = getchar())!= EOF)
{
if (characters != ' ')
{
putchar(characters);
}
if (characters == ' ')
{
while ((characters = getchar()) == ' ');
putchar(' ');
putchar(characters);
}
}
}
退出循环的时候已经到了首字母,所以退出时候那个字母也要打印。
页:
[1]