elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] Ayuda Comprobar cadena que cambia
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C] Ayuda Comprobar cadena que cambia  (Leído 2,408 veces)
Goddamn

Desconectado Desconectado

Mensajes: 6


Ver Perfil
[C] Ayuda Comprobar cadena que cambia
« 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


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [C] Ayuda Comprobar cadena que cambia
« Respuesta #1 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!


En línea

Goddamn

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: [C] Ayuda Comprobar cadena que cambia
« Respuesta #2 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 :)
En línea

bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: [C] Ayuda Comprobar cadena que cambia
« Respuesta #3 en: 23 Agosto 2016, 05:28 am »

pero esa cadena tiene que estar en una variable
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [C] Ayuda Comprobar cadena que cambia
« Respuesta #4 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!

En línea

Goddamn

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: [C] Ayuda Comprobar cadena que cambia
« Respuesta #5 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. }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines