Qué les parece este ejercicio que me tocó hacer? Tienen alguna mejora?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/** Algoritmo que cuenta la cantidad de cadenas
dentro de otra cadena **/
typedef unsigned int ui;
ui cuenta_str(const char *, const char *);
int main()
{
char *cadena = "¿MUNDO? MUNDO, SOY EL DIOS DEL MUNDO, MUNDO DOMINARE";
char *subcad = "MUNDO";
ui cuenta = cuenta_str(cadena, subcad);
printf("La cantidad de veces que %s se repite en %s es: %d", subcad
, cadena
, cuenta
); return 0;
}
ui cuenta_str(const char *s1, const char *s2)
{
const char *delim = " ,.!¡¿?/-";
char *token_Ptr;
ui cnt = 0;
if(s1 == NULL)
return 0;
token_Ptr
= strtok(aux
, delim
); while(token_Ptr != NULL)
{
if(strcmp(token_Ptr
, s2
) == 0) cnt++;
token_Ptr
= strtok(NULL
, delim
); }
return cnt;
}
Debería liberar la memoria de aux cierto?
EDITADO: Debería también contar MUNDO en la cadena "MUNDOROLA"? creen que sea necesario? Digamos que asumí que cadena = palabra :P