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:
- 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
Nossa função principal
Créditos novac_ft
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