Учитывая string foo
, я написал ответы о том, как использовать cctype
tolower
для преобразования символов в нижний регистр
transform(cbegin(foo), cend(foo), begin(foo), static_cast<int (*)(int)>(tolower))
Но я начал рассматривать locale
tolower
, который можно использовать следующим образом:
use_facet<ctype<char>>(cout.getloc()).tolower(data(foo), next(data(foo), foo.size()));
- Есть ли причина предпочесть один из них над другим?
- Отличается ли их функциональность вообще?
- Я имею в виду, кроме того, что
tolower
принимает и возвращаетint
, который, я полагаю, является лишь некоторым устаревшим материалом C?