我对这种和平的代码有疑问,它应该将小写字母更改为大写字母,并将多个空格转换为一个空格。所以它做错了什么,就像我写“ abcdefg”时一样,它以某种方式切断了第一个字母,这给了我输出“ BCDEFG”的机会。

main(){
int z=0,b;

        while ( (b = getchar() ) != '\n')
        {
        b=b-32;
            if (b>0)
            {
                putchar(b);
            }
            else
            {
                if (z>=2)
                {
                    putchar(b);
                }
                else
                {
                    z=z+1;
                    printf(" ");
                }
            }


        }
}

最佳答案

它似乎为我生成了所有字母...您是否尝试过对其进行跟踪,以找出输入的字符在每一步中的作用?

关于c - Putchar,getchar,while循环中缺少字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9700245/

10-16 00:50