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

strcmp

Estas en el tema de strcmp en el foro de C/C++ en Foros del Web. Hola a todos!! Tengo un problema con una cadena de caracteres que uso en un programa. He declarado un puntero Código: unsigned char *help; Lo ...
  #1 (permalink)  
Antiguo 17/01/2009, 04:32
Avatar de calathea  
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 122
Antigüedad: 15 años, 6 meses
Puntos: 3
strcmp

Hola a todos!!

Tengo un problema con una cadena de caracteres que uso en un programa.

He declarado un puntero
Código:
unsigned char *help;
Lo inicializo
Código:
help = (unsigned char *) malloc (sizeof(unsigned char[7]));
Mas adelante pido lo siguiente:
Código:
cout << "\nTipo de punto de interes (escribe \"ayuda\" para ver los tipos si no los conoces): ";
cin >> help;
Ahora puede que en mi variable "help" tenga un numero o la palabra "ayuda"...por lo que necesito comprobar qué es lo que hay en la variable almacenado, asique recurro a la funcion "strcmp" como condicion de un if:
Código:
if(strcmp("ayuda", help)==0)
Y aquí es donde tengo el problema: no se puede convertir el parámetro 2 de 'unsigned char *' a 'const char *'

He probado declarando otra cadena a la que asigno la palabra ayuda...y tampoco me sirve (ni si la declaro como puntero ni declarandola como array)

Alguien sabría decirme una solucion?? si pudiera ser usando la funcion "strcmp" lo preferiria.

Muchas gracias!
  #2 (permalink)  
Antiguo 17/01/2009, 06:44
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: strcmp

Ojo, 7 caracteres es demasiado poco. Podes hacer un casting:

Código:
if(strcmp("ayuda", (char*)help)==0)
O directamente declarar help como lo que deberia ser char *.
Código:
char *help = new char[120];
Se libera con:
Código:
delete[] help;
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 17/01/2009, 06:57
Avatar de calathea  
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 122
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: strcmp

xq 7 caracteres es poco?? lo máximo que se supone que va a acumular es la palabra "ayuda" que tiene 5 letras solo...

Me funciona bien con el casting...gracias!! la segunda opcion no la entiendo muy bien la verdad...si me la puedieras explicar un poco, por favor...
  #4 (permalink)  
Antiguo 17/01/2009, 08:30
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: strcmp

¿Y quien dice que el usuario no va a escribir 25 caracteres por ejemplo?

La segunda opcion es mas limpia y simple, reserva la memoria con new y la libera con delete; busca en Google para mas informacion.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 17/01/2009, 09:48
Avatar de calathea  
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 122
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: strcmp

vale, muchas gracias!
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 17:01.