Enviado em 14/11/2021 - 19:03h
Boa Noite a Todos!
Eu montei o algoritmo abaixo pra remover acentos e passar tudo para minúsculas, que acredito que uso no meu dia a dia!
Gostaria de saber se meu algoritimo está bom, ou se é possível fazer melhor!
Então quem tiver alguma idéia, ou crítica, gostaria de saber!
Lembrando que uso acentos!
Esse algoritimo é para meu aprendizado pessoal, logo, não é um trabalho que tenha regras, e nem pra uso profissional que também seguirá padrões!
Apenas trata-se de pequenos algoritmos cujo qual eu quero controlar e dominar completamente, motivo que nestes casos, não quero usar funções prontas porque elas não me ensinam nada!
Usei wchar porque ele trabalha com acentos, diferente do char que me forçaria a verificar 2 caracteres por vez, porém, ainda assim, vou depois montar o mesmo algoritimo com o simples char porque acho que eu apreciaria mais, ficando mais simples e ocupando menos Bytes, visto que o wchar está gastando 4 Bytes contra 1 Byte do char.
Eu montei o algoritmo abaixo pra remover acentos e passar tudo para minúsculas, que acredito que uso no meu dia a dia!
Gostaria de saber se meu algoritimo está bom, ou se é possível fazer melhor!
Então quem tiver alguma idéia, ou crítica, gostaria de saber!
Lembrando que uso acentos!
Esse algoritimo é para meu aprendizado pessoal, logo, não é um trabalho que tenha regras, e nem pra uso profissional que também seguirá padrões!
Apenas trata-se de pequenos algoritmos cujo qual eu quero controlar e dominar completamente, motivo que nestes casos, não quero usar funções prontas porque elas não me ensinam nada!
Usei wchar porque ele trabalha com acentos, diferente do char que me forçaria a verificar 2 caracteres por vez, porém, ainda assim, vou depois montar o mesmo algoritimo com o simples char porque acho que eu apreciaria mais, ficando mais simples e ocupando menos Bytes, visto que o wchar está gastando 4 Bytes contra 1 Byte do char.
#include <locale.h>
#include <wchar.h>
int main(void) {
setlocale(LC_ALL, "");
wchar_t Text[] = L"áéíóú àèìòù âêô ãõ ç ABCaÇÁ";
for(int Ch = 0; Text[Ch] != '\0'; ++Ch) {
if(Text[Ch] >= 'A' && Text[Ch] <= 'Z') Text[Ch] = Text[Ch] + 32;
else Text[Ch] = Text[Ch];
if(Text[Ch] == L'Á' || Text[Ch] == L'À' || Text[Ch] == L'Â' || Text[Ch] == L'Ã' || Text[Ch] == L'á' || Text[Ch] == L'à' || Text[Ch] == L'â' || Text[Ch] == L'ã') Text[Ch] = L'a';
if(Text[Ch] == L'É' || Text[Ch] == L'È' || Text[Ch] == L'Ê' || Text[Ch] == L'é' || Text[Ch] == L'è' || Text[Ch] == L'ê') Text[Ch] = L'e';
if(Text[Ch] == L'Í' || Text[Ch] == L'Ì' || Text[Ch] == L'í' || Text[Ch] == L'ì') Text[Ch] = L'i';
if(Text[Ch] == L'Ó' || Text[Ch] == L'Ò' || Text[Ch] == L'Ô' || Text[Ch] == L'Õ' || Text[Ch] == L'ó' || Text[Ch] == L'ò' || Text[Ch] == L'ô' || Text[Ch] == L'õ') Text[Ch] = L'o';
if(Text[Ch] == L'Ú' || Text[Ch] == L'Ù' || Text[Ch] == L'ú' || Text[Ch] == L'ù') Text[Ch] = L'u';
if(Text[Ch] == L'ç' || Text[Ch] == L'Ç') Text[Ch] = L'c';
}
wprintf(L"%ls\n", Text);
}