Citarmi funcion recibe un unsigned char*, esta variable tiene un monton de saltos de linea. Quiero buscar un string en su interior. El problema es que strstr() busca hasta que llega al primer salto de linea, y si el string que busco esta despues del primer salto de linea pues no lo va a encontrar....Por ello debo primero trocear el contenido de mi variable unsigned char* usando como separador el salto de linea y luego utilizar el strstr() en cada uno de esos trozos.
bueno yo acabo de hacer este sencillo ejemplo:
Código (c) [Seleccionar]
#include <stdio.h>
#include <string.h>
int main() {
char *resultado=NULL, texto[]="hola que tal\nbien y tu\nbien gracias\n", buscar[]="bien";
resultado=strstr(texto, buscar);
if (resultado) printf("%s", resultado);
else printf("No se encontro.\n");
return 0;
}
y la salida es:
Código [Seleccionar]
~$ gcc prueba.c -o prueba
~$ ./prueba
bien y tu
bien gracias
~$
que segun la definicion de la funcion http://c.conclase.net/librerias/?ansifun=strstr esto es exactamente lo que tiene que hacer. no dice nada de que busca hasta encontrar un espacio, al contrario, dice que busca hasta encontrar el caracter nulo de fin de cadena. en este ejemplo que te he puesto, "resultado" apunta a la primera coincidencia que se encuentra, que es el primer "bien", y tendra el valor de toda la cadena hasta el caracter NULL del final.
es esto lo que buscas hacer con tu funcion o es otra cosa? lo que pretendes es encontrar una sola palabra o frase en concreto dentro de la otra?