O problem setter desse problema facilitou muita coisa para gente, então só bora!
Descrição
Solução
Aqui não precisamos nos preocupar com código HTML inválido, não precisamos nos preocupar com aba aberta sem fechar, vivemos no mais puro paraíso. Com isso, o que precisamos fazer é só substituir os underlines por tags itálico e os asteriscos por tags negrito, guardando em uma variável se já abrimos uma tag dessas antes ou não. Essa variável é consultada antes de colocarmos a tag e o valor dela troca sempre após colocarmos a tag apropriada.
Um detalhe interessante para as linguagens JavaScript e Python é que eu não uso o replace indiscriminadamente porque alguns dos underlines abrem e outros fecham, mesma coisa para os asteriscos, então precisa-se trocar com certo critério.
#include<string.h>#include<stdio.h>intmain(){char frase[51];int n, negrito, italico;while(gets(frase)!=NULL){ negrito =0; italico =0; n =strlen(frase);for(int i =0; i < n; ++i){if(frase[i] =='_'){printf("%s", italico ?"</i>":"<i>"); italico =1- italico; }elseif(frase[i] =='*'){printf("%s", negrito ?"</b>":"<b>"); negrito =1- negrito; }else{printf("%c", frase[i]); } }printf("\n"); }return0;}