...
This noncompliant code example may pass invalid values to the isspace()
function.
Code Block | ||||
---|---|---|---|---|
| ||||
size_t count_preceding_whitespace(const char *s) { const char *t = s; /* possibly *t < 0 */ while (*t && isspace(*t)) { ++t; } return t - s; } |
...
This compliant solution casts the character to unsigned char
before passing it as an argument to the isspace()
function.
Code Block | ||||
---|---|---|---|---|
| ||||
size_t count_preceding_whitespace(const char *s) { const char *t = s; while (*t && isspace((unsigned char)*t)) { ++t; } return t - s; } |
...