LifeGames Forums
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
LifeGames Forums

| O seu fórum de games, dicas, tutoriais, downloads, e muito mais


Você não está conectado. Conecte-se ou registre-se

C++::Transformando string Maiúscula em Minúscula sem usar funções da biblioteca padrão

Ir para baixo  Mensagem [Página 1 de 1]

novac_ft

novac_ft
Moderador
Moderador

Primeiramente temos que saber que um string no estilo de C é um array de caracteres que termina com zero. Então para encontrar o final da string só precisamos encontrar um char com o valor 0.

1. Vamos declarar a função void to_lower(char* s);
2. Agora vamos fazer sua implementação:
Código:
void to_lower(char* s)
{
    for(int i =0; s[i];i++) //quando s chegar no indice 0, ja que uma string no estilo de C termina com 0
    {
        if('A'<=s[i] && s[i]<='Z') //excluir caracteres como !@#$%
            s[i] = s[i] - ('A'-'a'); //realizando a troca para minúsculas
    }
}

- Na linha 5 fazemos a checagem se o caractere está dentro do alfabeto.
- Na linha 6 realizamos uma conta que resulta no caractere minúsculo.
Por ex: 'X' - ('A'-'a') resulta em 120. Onde 120 na tabela ASCII equivale a 'x'.

Solução 2

Código:
void to_lower(char* s)
{
 if (s==0) return; // apenas em casos de to_lower(0) //ponteiro nulo
 for (; *s; ++s) {   // s ja foi inicializado, então nós não precisamos inicializar parte do for
        if ('A'<=*s && *s<='Z') // excluir caracteres como !@#$%
            *s -= ('A'-'a'); //realizando a troca para minúsculas
 }
}


Nossa função principal


Código:
int main()
{
    char nome[15] = "LUCAS";
    to_lower(nome);
    cout << nome << endl;
    return 0;
}



Créditos novac_ft

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos