Dia desse eu vi na internet um dúvida simples, mas interessante . Alguém postou querendo saber: “Como remover tags HTML em C?” .
Rapidamente veio em minha mente RegEx, mas com C++ .
Se você entende de Expressões Regulares com C++ é realmente muito fácil, basta:
<regex>
;regex_replace()
para substituir pela string deseja.Em resumo o código é esse:
Provável saída:
Esse é um link
Mas, em Linguagem C realmente as coisas não são tão fáceis assim.
Você pode usar a regex.h
em C, mas ela verificará padrões somente, mas a substituição vai ficar por sua conta.
Por exemplo, verificar se determinada string há tags nela, podemos usar assim:
Provável saída:
Tem tags!
Para mais informações acesse a página de POSIX do manual pelo comando:
Após você verificar se uma determinada string possui tags(economiza processamento) o próximo passo é você remover as tags.
Eu criei uma soluçao própria(e simples 💡 ) que pode ser contestada pelos amantes do C, mas ela funciona 😎 . O código em si é:
stdio.h
para usar o printf
;string.h
para usar o strlen
;stdbool.h
para usar o tipo bool
SIZE
para otimizar o desempenhochar *
para redefinição . E essa função é o seguinte:
for
para percorrer a string de acordo com a quantidade de caracteres dela;<
foi identificado na string;tag
como true
out[SIZE];
false
somente após identificar o caractere >
de fechamento de tags.O código final é:
Provável saída:
Esse é um link
O certo seria alocarmos espaço na heap, pois uma string que contém um documento HTML pode ser gigante. Mas para fins didáticos, e entender a lógica, tá de bom tamanho.
Até a próxima!