Conversione di una stringa in minuscolo

C++:
Conversione di una stringa in minuscolo

How to:

Esempio: usando la funzione std::transform e ::tolower.

#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>

int main() {
    std::string s = "Ciao Mondo!";
    std::transform(s.begin(), s.end(), s.begin(),
                   [](unsigned char c){ return std::tolower(c); });
    std::cout << s << std::endl;
    return 0;
}

Output:

ciao mondo!

Deep Dive

La conversione delle stringhe in minuscolo risale ai primi giorni dell’informatica, quando i sistemi erano meno tolleranti alle varianti di maiuscole e minuscole. In C++, prima dell’introduzione della libreria standard, i programmatori spesso scrivevano le proprie funzioni per manipolare le stringhe.

Alternativamente, possiamo usare delle funzioni di una libreria esterna come Boost, che presenta funzioni come to_lower_copy per creare nuove stringhe in minuscolo, oppure la manipolazione diretta con cicli e funzioni tolower.

Dettaglio implementativo: std::tolower necessita di unsigned char come input per evitare comportamenti indefiniti con caratteri la cui rappresentazione supera il valore di CHAR_MAX.

See Also