Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Comparar cadenas de texto.

Estas en el tema de Comparar cadenas de texto. en el foro de C/C++ en Foros del Web. Tengo una duda, yo se que existe la función strcmp para hacer comparaciones de dos cadenas. ¿Pero si quiero comparar 3?, osea yo tengo este ...
  #1 (permalink)  
Antiguo 28/08/2010, 15:52
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 14 años, 3 meses
Puntos: 13
Comparar cadenas de texto.

Tengo una duda, yo se que existe la función strcmp para hacer comparaciones de dos cadenas. ¿Pero si quiero comparar 3?, osea yo tengo este código.

Código C:
Ver original
  1. else if (strcmp(datos.teclado, "tienda") == 0){
  2.      printf("(1) Restar un arresto. [Valor: 10 puntos] \n");
  3.      datos.menu = getch();
  4.  
  5. switch(datos.menu){
  6.      case '1':
  7.      if (datos.suma_puntos >= 10){
  8.      datos.suma_puntos = -10;
  9.      datos.arrestos++;
  10.      printf("Has comprado un quitador de arrestos \n");}
  11.      else if (datos.suma_puntos <= 9){
  12.      printf("No tienes suficientes puntos. \n");}
  13.      break;
  14.      default:
  15.      printf("Tienes que selecionar una opcion correcta. \n");}}

Ahora como haría para poder hacer algo como datos.teclado, "tienda", "1", de tal modo que tenga que escribir que tienda quiero. Se que podría hacerlo en el misma cadena "tienda 1" pero par hacer las demás tiendas voy a tener que escribir mas código, yo hablo por cuestiones de evitar darle vuelta al código para nada.

Saludos :)
  #2 (permalink)  
Antiguo 29/08/2010, 09:48
Avatar de pmike  
Fecha de Ingreso: marzo-2004
Ubicación: Barcelona
Mensajes: 313
Antigüedad: 20 años, 7 meses
Puntos: 7
Respuesta: Comparar cadenas de texto.

Cuando utilizas la función strcmp solo puedes comparar 2 cadenas de texto.

el valor devuelto podrá ser:

'0' si son iguales las cadenas

'distinto a 0' Son diferentes las cadenas.

Según el dato introducido pòr teclado si es distinto a tienda NO entra en el menu. Sólo entras en el menu cuando introduces 'tienda'.

No hace falta comparar 3 cadenas de texto
__________________
www.visitaspirata.com
  #3 (permalink)  
Antiguo 29/08/2010, 13:53
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 14 años, 3 meses
Puntos: 13
Respuesta: Comparar cadenas de texto.

Muchas gracias a tu respuesta, pero no es a lo que yo me refiero. Supongamos, yo quiero hacer es comparar 3 cadenas, de tal modo que yo introduzca numero 4 y me diga as introducido el numero 4. Pero hay serian ya 3 cadenas, a eso me refiero.
  #4 (permalink)  
Antiguo 29/08/2010, 13:56
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Comparar cadenas de texto.

Todavia no te logro entender, donde esterian las tres cadenas??
  #5 (permalink)  
Antiguo 29/08/2010, 13:58
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 14 años, 3 meses
Puntos: 13
Respuesta: Comparar cadenas de texto.

Cita:
Iniciado por sam90 Ver Mensaje
Todavia no te logro entender, donde esterian las tres cadenas??
Código C:
Ver original
  1. if (strcmp(datos.teclado, "numero", numero)
  2. printf("El numero introducido es x");
Algo así mas o menos me refiero. Pero strcmp solo se limita a 2 cadenas, ¿habrá otra función que haga lo mismo pero con varias cadenas?
  #6 (permalink)  
Antiguo 29/08/2010, 14:04
Avatar de pmike  
Fecha de Ingreso: marzo-2004
Ubicación: Barcelona
Mensajes: 313
Antigüedad: 20 años, 7 meses
Puntos: 7
Respuesta: Comparar cadenas de texto.

strcmp sólo compara dos cadenas de texto, y ya está.

Ademas que quieres comparar dos cadenas de texto y un entero ???
__________________
www.visitaspirata.com
  #7 (permalink)  
Antiguo 29/08/2010, 14:07
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 14 años, 3 meses
Puntos: 13
Respuesta: Comparar cadenas de texto.

Cita:
Iniciado por pmike Ver Mensaje
strcmp sólo compara dos cadenas de texto, y ya está.

Ademas que quieres comparar dos cadenas de texto y un entero ???
Para, yo mismo me estoy enredando jaja, yo quiero es buscar una forma para comparar 3 cadenas de texto.

Última edición por guzzano; 29/08/2010 a las 14:21
  #8 (permalink)  
Antiguo 29/08/2010, 14:23
Avatar de pmike  
Fecha de Ingreso: marzo-2004
Ubicación: Barcelona
Mensajes: 313
Antigüedad: 20 años, 7 meses
Puntos: 7
Respuesta: Comparar cadenas de texto.

Sólo se me ocurre realizar una función para tal efecto.

int funcionComparar(char *dato1, char *dato2, int dato3)

{
strcmp() //realizar comparacion de datos
itoa() //realizar transformacion de entero a string
//devolver '1' si se realiza correctamente
}
__________________
www.visitaspirata.com
  #9 (permalink)  
Antiguo 29/08/2010, 14:29
Avatar de pmike  
Fecha de Ingreso: marzo-2004
Ubicación: Barcelona
Mensajes: 313
Antigüedad: 20 años, 7 meses
Puntos: 7
Respuesta: Comparar cadenas de texto.

vale tres cadenas de texto.

int funcionComparar(char *dato1, char *dato2, char* dato3)

{
valor1=strcmp(dato1, dato2) //realizar comparacion de datos

valor2=strcmp(valor1, dato3)

}

es evidente que falta por acabar las condiciones, pero no te lo voy hacer todo yo.
__________________
www.visitaspirata.com
  #10 (permalink)  
Antiguo 29/08/2010, 14:37
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 14 años, 3 meses
Puntos: 13
Respuesta: Comparar cadenas de texto.

Cita:
Iniciado por pmike Ver Mensaje
vale tres cadenas de texto.

int funcionComparar(char *dato1, char *dato2, char* dato3)

{
valor1=strcmp(dato1, dato2) //realizar comparacion de datos

valor2=strcmp(valor1, dato3)

}

es evidente que falta por acabar las condiciones, pero no te lo voy hacer todo yo.
Jajaja no tranquilo ahora lo pruebo, muchísimas gracias. +Karma :)
  #11 (permalink)  
Antiguo 29/08/2010, 18:02
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Comparar cadenas de texto.

Pasa que por ahi venia mi duda, una cadena es la de teclado.... otra cadena segun vos es "tienda" y otra cadena es un numero en caracteres....pero eso nunca va a llegar a ser todos igual..... Por eso vienen mis dudas...

Lo que yo habia interpretado era de concatenar dos cadenas y despues compararla con la tercera....
  #12 (permalink)  
Antiguo 02/09/2010, 16:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 60
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: Comparar cadenas de texto.

Yo sigo sin entender el problema este de compara 3 cadenas, porque después comenta unas cosas más raras de números y tiendas..
  #13 (permalink)  
Antiguo 02/09/2010, 18:58
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 14 años, 3 meses
Puntos: 13
Respuesta: Comparar cadenas de texto.

Cita:
Iniciado por abacusar Ver Mensaje
Yo sigo sin entender el problema este de compara 3 cadenas, porque después comenta unas cosas más raras de números y tiendas..
Jaja si yo mismo me enrede con las preguntas. Queria era poder introducir 3 cadenas de texto, y que me comparara las dos primeras, y luego la otra meterla en una variable o sacarla de una.

Lo solucione gracias a strncmp, y sscanf.

Etiquetas: cadenas, comparar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:25.