Estou tendo problemas em um trabalho na faculdade sobre linguagem C
Meu professor pediu para fazermos um programa que quando minha entrada for _texto_ ou *texto* a saída deve ser <i>texto</i> ou <b>texto</b>
Estamos tendo problemas em substituir os simbolos de _ e de * por <i><b>
Esse é o arquivo my_html.h criado pelo meu professor:
/* my_html.h
* Protótipo das funções para transformar para itálico e negrito
* o texto informado pelos autores do weblog.
* Ciro Cirne Trindade
* 02/10/2019 */
#ifndef _MY_HTML_H
#define _MY_HTML_H
/* função que converte os atalhos de itálico do texto passado
* como argumentos para as tags HTML <i> e </i> */
void italico(char *);
/* função que converte os atalhos de negrito do texto passado
* como argumentos para as tags HTML <b> e </b> */
void negrito(char *);
/* função que substitui o caractere da posição dada pelo 2o argumento
* no texto dado pelo 1o argumento pela tag passada como 3o
* argumento(<i>, </i>, <b> ou </b>) */
void replace(char *, int, const char *);
#endif
esse e o nosso fonte desenvolvendo os prototipos da biblioteca my_html.h:
#include <stdio.h>
#include <string.h>
#include "my_html.h" // --> Biblioteca contendo o protótipo \
das funções para transformar o texto digitado em \
tags de negrito e itálico
void italico(char * str) // função que converte os atalhos de itálico do texto passado
{ // como argumentos para as tags HTML <i> e </i>
int i; // indice da string
for(i = 0; str[i] != '\0'; i++){ // percorre a string
if (str[i] == '_'){ // e procura pelo sinal de _
replace(str, i, "<i>"); // substitui o sinal de _ pela tag <i>
i+=2; //
}
}
}
void negrito(char * str) // função que converte os atalhos de negrito do texto passado
{ // como argumentos para as tags HTML <b> e </b>
int i; // indice da string
for(i = 0; str[i] != '\0'; i++){ // percorre a string
if (str[i] == '*'){ // e procura pelo sinal de *
replace(str, i, "<b>"); // substitui o sinal de _ pela tag <b>
i+=2;
}
}
}
void replace(char * str, int i, const char * tag) // Em faze de testes
{
for(i = 0; str[i] != '\0'; i++){
if (tag[i] == '_'){
strcpy(tag[i], "<i>");
}
else if(tag[i] == '*'){
strcpy(tag[i], "<b>");
}
}
}
e esse e o nosso arquivo main:
#include <stdio.h>
#include <string.h>
#include "my_html.h" // --> Biblioteca contendo o protótipo \
das funções para transformar o texto digitado em \
tags de negrito e itálico
int main()
{
char texto[101]; // Conteudo a ser digitado para o weblog
// system("clear"); // Limpa o terminal
printf("\n");
scanf("%100[]", texto);
while(fgets(texto, 100, stdin) != NULL){
italico;
negrito;
printf("%s\n", str);
}
// getchar(); // Pausa a tela do terminal (equivalente ao system("pause") do Windows)
return 0;
}