Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Goddamn en 22 Agosto 2016, 18:03 pm



Título: [C] Ayuda Comprobar cadena que cambia
Publicado por: Goddamn en 22 Agosto 2016, 18:03 pm
Hola.
Lo que yo quiero hacer es comprobar una cadena el problema es que esta cadena cambia no siempre es igual ej: (Last match won by Lucas) lo que siempre cambia es el nombre, intente cortar la cadena original y comprobar la cadena cortada pero no me funciono capas que hice algo mal.

Código
  1. // el code lo saque de google
  2. char *substring(size_t start, size_t stop, const char *src, char *dst, size_t size)
  3. {
  4. int count = stop - start;
  5. if (count >= --size)
  6. {
  7. count = size;
  8. }
  9. sprintf(dst, "%.*s", count, src + start);
  10. return dst;
  11. }
  12. //static const char text[] = "Last match won by Lucas";Corto la cadena después del "by "
  13. char a[19], b[5], sz[100];
  14. sprintf(sz,"%s", substring(1, 15, CadenaOriginal, a, sizeof a));
  15.  
  16.        if (strcmp("Last match won by", sz) == 0)
  17. {
  18.        }
  19.  

Si tienen una mejor forma de hacerlo y me quieren decir mejor :)
Espero que me puedan ayudar gracias!!! ;D


Título: Re: [C] Ayuda Comprobar cadena que cambia
Publicado por: AlbertoBSD en 22 Agosto 2016, 18:11 pm
Que es lo que quieres hacer?

Comprobar si cambio la cadena o solo extraer el nombre nuevo?

Saludos!


Título: Re: [C] Ayuda Comprobar cadena que cambia
Publicado por: Goddamn en 23 Agosto 2016, 05:14 am
Lo que yo necesito es comprobar una cadena el problema es que la cadena cambia
Mira un ej
Código
  1. if (strcmp("Last match won by", pMessage) == 0)// La cadena original contiene lo que es (Last match won by Nombre)
  2. {
  3. }

Lo que yo quiero es cortar el nombre y dejar el texto nomas para así poder comprobarlo con un strcmp :)


Título: Re: [C] Ayuda Comprobar cadena que cambia
Publicado por: bengy en 23 Agosto 2016, 05:28 am
pero esa cadena tiene que estar en una variable


Título: Re: [C] Ayuda Comprobar cadena que cambia
Publicado por: AlbertoBSD en 23 Agosto 2016, 17:33 pm
pero esa cadena tiene que estar en una variable

No es necesario que este en una variable, si es la una vez que la va usar....

Intenta esto:

Código
  1. char *temp = NULL;
  2. char *last = "Last match won by";
  3. temp = strstr(last,pMessage);
  4. if(temp) { //La cadena en last si esta contenida en pMessage
  5. int last_len =strlen(last);
  6. int len = strlen(pMessage);
  7. int restante = len - last_len;
  8. temp = malloc(restante+1); //Reservamos memoria para el restante de la cadena
  9. memcpy(temp,pMessage+last_len,restante);
  10. printf("%s\n",temp); // temp deberia de contener el restante de la cadena pMessage
  11. }
  12.  


Saludos!



Título: Re: [C] Ayuda Comprobar cadena que cambia
Publicado por: Goddamn en 24 Agosto 2016, 11:53 am
Gracias ya voy a probar ese code de todos modos encontré una solución a mi problema .
Código
  1. if (strncmp(pMessage, "Last match won by ", 18) == 0)
  2. {
  3. }