@arfneto Sim tenho que entregar hoje , o que eu tenho que fazer é substituir todos " _ " por " <i> " só que vai aparecer um numero par de vezes então sempre vai ter que abrir com " <i> " e fechar com "</i>" e com o " * " a mesmo coisa só que substituir por "<b>" e "</b>"
adicionado 2 minutos depois
@arfneto
#include <stdio.h>
#include <string.h>
void replace(char * txt, int index, const char * tag);
int cont=1;
int main()
{
int i;
char txt[100];
char* tag_abre[2] = {"<i>","<b>"};
char* tag_fecha [2] = {"</i>","</b>"};
fgets(txt, 100, stdin);
for(i=0; i<strlen(txt); i++)
{
if(txt=='_')
{
replace(txt,i,tag_abre[0]);
cont++;
i=i+3;
}
}
puts(txt);
return 0;
}
void replace(char * txt, int index, const char * tag)
{
char txt2[200];
if(cont==1)
{
strncpy(txt2, txt, index);
strcat(txt2,tag);
strcat(txt2,txt+index+1);
strcpy(txt,txt2);
}
if(cont==2)
{
strncpy(txt2, txt, index);
strcat(txt2,tag);
strcat(txt2,txt+index+1);
strcpy(txt,txt2);
cont--;
}
}
isso foi o que eu fiz ate agr mas n ta nem perto do certo porém n consigo sair disso to realmente desesperado
adicionado 30 minutos depois
@arfneto Minha logica é basicamente essa só preciso saber como substituir na função REPLACE()
#include <stdio.h>
#include <string.h>
void replace(char * txt, int index, const char * tag);
int main()
{
char txt[51];
char* tag_abre[2] = {"<i>","<b>"};
char* tag_fecha [2] = {"</i>","</b>"};
int i,conti=1,contb=1;
fgets(txt, 50, stdin);
for(i=0; i<strlen(txt); i++)
{
if( (txt=='_') && (conti%2 != 0))
{
replace(txt,i,tag_abre[0]);
conti++;
}
if( (txt=='_') && (cont%2 = 0))
{
replace(txt,i,tag_fecha[0]);
}
if( (txt=='*') && (contb%2 != 0))
{
replace(txt,i,tag_abre[1]);
contb++;
}
if( (txt=='*') && (contb%2 = 0))
{
replace(txt,i,tag_fecha[1]);
}
}
return 0;
}