Bueno va, dime una, para hacerme una idea
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú#include <stdio.h>
#include <windows.h>
int separar(char ***vector, char *cadena, char *buscada);
int main(int argc, char *argv[])
{
char frase[]="Holasss999 como estas 999freeze??? 999 :p999a999b999999c999d99aaaa999";
char **palabras;
int cant,i;
cant = separar(&palabras,frase,"999");
for(i=0;palabras[i];i++)printf("%s\n",palabras[i]);
system("PAUSE");
return EXIT_SUCCESS;
}
int separar(char ***vector, char *cadena, char *buscada){
char **palabras;
int tam,i,iant=0,n=0,cantidad=1;
int tamtotal,tamfrase;
tamtotal=strlen(cadena);
tam=strlen(buscada);
// recorro primero una vez para contar las partes, para no complicarla con realloc.
for(i=0;i<tamtotal;i++){
while((cadena[i+n]==buscada[n])&&(n<tam))n++;
if(n==tam)cantidad++;
n=0;
}
palabras=(char **)malloc(cantidad * sizeof(char **));
cantidad=0;
for(i=0;i<tamtotal;i++){
while((cadena[i+n]==buscada[n])&&(n<tam))n++;
if(n==tam){
tamfrase=i-iant;
palabras[cantidad]=(char*)malloc(tamfrase);
memcpy(palabras[cantidad],&cadena[iant],tamfrase);
palabras[cantidad][i-iant]=0;
iant=i+tam;
cantidad++;
i=i+tam;
}
n=0;
}
tamfrase=i-iant;
palabras[cantidad]=(char*)malloc(tamfrase);
memcpy(palabras[cantidad],&cadena[iant],tamfrase);
palabras[cantidad][tamfrase]=0;
palabras[cantidad+1]=0;
*vector=palabras;
return cantidad;
}