PP圆圆像河马 2023-03-18 17:42 采纳率: 66.7%
浏览 35
已结题

C语言函数的输出问题求解答

img

这两个函数,第一个可以遇到空白停止输入,第二个不可以,哪里出了问题?

  • 写回答

1条回答 默认 最新

  • MarkHan_ 2023-03-18 17:50
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    第二个函数中,while循环中的条件是判断是否遇到空白字符或者换行符,但是在后面的处理中,使用的却是'10'而不是'\n',因此无法正确识别换行符。正确的写法应该是将'10'替换成'\n',如下所示:

    void U11_2_2(char* ptr, int n) {
        fgets(ptr, n, stdin);
        int i = 0;
        while (isspace(ptr[i]) == 0 && ptr[i] != '\n') {
            i++;
        }
        if (isspace(ptr[i])) {
            ptr[i] = '\n';
        }
    }
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月18日
  • 创建了问题 3月18日