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

Palindrome en C

Estas en el tema de Palindrome en C en el foro de C/C++ en Foros del Web. Hola!! necesito ayuda, el problema es el siguiente. Escriba una funcion en C que reciba un string como argumento y que retorne Verdadero (1) si ...
  #1 (permalink)  
Antiguo 23/06/2011, 15:08
 
Fecha de Ingreso: junio-2011
Mensajes: 1
Antigüedad: 12 años, 10 meses
Puntos: 0
Palindrome en C

Hola!! necesito ayuda, el problema es el siguiente.

Escriba una funcion en C que reciba un string como argumento y que retorne Verdadero (1) si este es un Palindrome y Falso (0) en caso contrario

Nota: El uso de la biblioteca <string.h> será PENALIZADO!.

Prototipo: int Palindrome (char *string);


no sé como hacerlo sin la librería <string.h> :S si alguien puede ayudarme lo agradecería..!!
  #2 (permalink)  
Antiguo 23/06/2011, 16:32
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Palindrome en C

Primero de todo si sabes hacerlo con la biblioteca string,h no es tan dificil crear propias definiciones de las funciones que estan adentro.

Otra solucion es hacer un for desde 0 hasta la longitud de la cadena / 2 (tener cuidado con cadenas impares)
Luego dentro del for comparas la posicion i con la posicion longitud - 1
Si tu cadena tiene longitud 11: estarias comparando
0 con 10
1 con 9
2 con 8
3 con 7
4 con 6
y el 5 queda libre

Fijate si entendes la onda del ejercicio. Sinceramente usar la libreria string.h es medio al pedo.
  #3 (permalink)  
Antiguo 24/06/2011, 11:15
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años
Puntos: 71
Respuesta: Palindrome en C

Define tus propias funciones que utilizarás en el manejo de las cadenas simulando string.h. Por lo que percibo del problema a lo más que necesitarás será el strlen para obtener la longitud de la cadena. La puedes implementar con un while y un contador, el loop lo detienes cuando llegues a leer el caracter '\0' y si no es el caso incrementas tu contador en 1.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #4 (permalink)  
Antiguo 24/06/2011, 18:21
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Respuesta: Palindrome en C

Podrías (adentro de la función) declarar otro string...

Luego usar un ciclo para contar la cantidad de caracteres que tiene el string que quieres saber sí es palíndromo...

Luego con otro ciclo (usando como argumento el número de caracteres) en el segundo arreglo pones los caracteres del primer arreglo pero alrevéz...

Y terminas con otro ciclo que compare los caracteres uno a uno, por ejemplo

for(x = 0; x < cantidad_caracteres; x++)
{
if(arreglo1[x] != arreglo2[x])
return 0;
}

return 1;

O algo parecido!

Saludos!
  #5 (permalink)  
Antiguo 24/06/2011, 23:52
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años
Puntos: 71
Sonrisa Respuesta: Palindrome en C

Cita:
Iniciado por reethok Ver Mensaje
Podrías (adentro de la función) declarar otro string...

Luego usar un ciclo para contar la cantidad de caracteres que tiene el string que quieres saber sí es palíndromo...

Luego con otro ciclo (usando como argumento el número de caracteres) en el segundo arreglo pones los caracteres del primer arreglo pero alrevéz...

Y terminas con otro ciclo que compare los caracteres uno a uno, por ejemplo

for(x = 0; x < cantidad_caracteres; x++)
{
if(arreglo1[x] != arreglo2[x])
return 0;
}

return 1;

O algo parecido!

Saludos!
Como dije todo pasa por saber el número de caracteres o longitud de la cadena.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%

Etiquetas: palindrome, palindromo
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:49.