Convertendo uma string para minúsculas

C++:
Convertendo uma string para minúsculas

Como Fazer:

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

int main() {
    std::string texto = "Olá, Mundo!";
    std::transform(texto.begin(), texto.end(), texto.begin(), 
                   [](unsigned char c){ return std::tolower(c); });
    
    std::cout << texto << std::endl; // saída: "olá, mundo!"
    return 0;
}

Mergulho Profundo:

Antigamente, converter strings para minúsculas manualmente era um processo mais trabalhoso, pois exigia-se percorrer cada caractere e usar tabelas de conversão. Com C++ moderno, a biblioteca <algorithm> fornecer a função std::transform que torna isso um processo simples. Alternativamente, podem-se usar funções específicas, como std::tolower, em laços de repetição.

Um detalhe de implementação importante é que std::tolower requer o cabeçalho <cctype>. É essencial saber que o comportamento da função std::tolower pode ser indefinido se o caractere passado não for um caractere unsigned ou EOF. Isso é uma das razões pela qual a lambda acima usa unsigned char.

Existem também outras abordagens, como bibliotecas de terceiros, por exemplo, boost::algorithm::to_lower que podem oferecer mais flexibilidade e potência para certos casos de uso.

Ver Também: