这两个函数,第一个可以遇到空白停止输入,第二个不可以,哪里出了问题?
该回答引用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';
}
}