Pull to refresh

Comments 9

ch == ' ' || (ch >= '0' && ch <= '9')

std::isspace, std::isdigit

std::isspace, std::isdigit

Разве по крайней мере isspace не зависит от локали,
т.е. поведение твоего код может непредсказуемо меняться
в зависимости от глобальной переменной?

непредсказуемо меняться в зависимости от глобальной переменной

Скорее наоборот, меняться так, как желает пользователь конкретной системы.


Гарантии, что множество кодов символов {'0'-'9'}, располагается именно последовательно и растёт от нуля к девяти насколько я знаю, не гарантированно ни одним стандартом. Т.е. код просто непортабельный, в данном случае это может и не есть плохо/важно, просто, имхо, моветон.


Это как сравнивать конец строки с 0. Портабельное решение c == '\0', но в 99.9999...% случаев видимо отработает и c == 0.

UFO just landed and posted this here
Да, в примере предполагалось ловить только пробелы. Но можно и указанные функции применить — суть примера все-равно не в них.

Хорошо но поздновато. Такому тьюториалу цены бы не было лет 15 назад.

Мне потребовалось год назад, а в рунете не смог найти никаких толковых статей. На английском нашел пару, но очень не хватало рабочих примеров и объяснения некоторых тонкостей. Оба этих недостатка постарался исправить в своей статье.

Кстати, почему поздновато? Сейчас используют что-то другое с подобным функционалом?

Нет, просто сейчас как то не так актуально стало. Раньше я действительно помню разные люди решали эту задачу параллельно и независимо, а сейчас ажиотаж просто спал. И вы очень верно подметили, я тоже помню это ощущуние, информация вроде есть, но катастрофически не хватает примеров и тонкостей. Как раз у вас с этим все хорошо.

Да отличный туториал, всегда бы так!
Sign up to leave a comment.

Articles