Isspace()只适用于8以下的数字

isspace() only works for digits up to 8?

本文关键字:数字 适用于 Isspace      更新时间:2023-10-16

在我的代码中:

cout << "Isspace 5 and 10 are " << isspace(5) << " and " << isspace(10) << endl;

给出0和8。为什么isspace(10)不给出0,因为10不是空白?

因为根据issspace(), 10 (0xa)是一个空白字符(换行/换行)。见http://www.cplusplus.com/reference/cctype/isspace/

您应该将字符传递给isspace,而不是整数。

isspace('5') == zero (false)
isspace(' ') == non-zero (true)

当您传递510时,您正在询问具有ASCII值5 (ENQ,一些很少使用的控制代码)和10 (LF,换行,AKA 'n')的字符是否为空白。ENQ不是空白,所以isspace返回零。换行是空白,所以isspace返回一个非零值。

您传递的数字将被视为ASCII字符的数字表示。10是一个换行符,被系统认为是一个空白字符。