#include void strdel(char resultado[], char original[], char apagar[]) { int q = 0; // Tamanho do vetor resultado. int inicio = 0, fim; // Marcam o início e o fim do pedaço de "original" // que deve ser copiado. int tam_apagar; // Tamanho da cadeia "apagar". tam_apagar = strlen(apagar); // Localiza próxima ocorrência da cadeia "apagar" char *end_apagar = strstr(&original[inicio], apagar); // Enquanto existirem novas ocorrências while (end_apagar > 0) { // Calcula a posição no vetor "original" da ocorrência fim = end_apagar - original; // Copia tudo até antes da ocorrência para o vetor "resultado" strncpy(&resultado[q], &original[inicio], fim - inicio); // Atualiza o tamanho do vetor "resultado" q += fim - inicio; // Inicia um novo pedaço pulando a ocorrência inicio = fim + tam_apagar; // Procura próxima ocorrência end_apagar = strstr(&original[inicio], apagar); } // Copia o pedaço que falta de "original" para "resultado" resultado[q] = '\0'; strcat(resultado, &original[inicio]); } int main() { char resultado[100]; char original[] = "Lá está o velho Sócrates com seu velho livro."; char apagar[] = " velho"; strdel(resultado, original, apagar); printf("%s\n", resultado); return 0; }