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

img

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

该回答引用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';
    }
}