• Viernes 8 de Noviembre de 2024, 20:21

Autor Tema:  Re: Problema con Punteros!!!!  (Leído 2213 veces)

Rbsmarte

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Problema con Punteros!!!!
« en: Martes 3 de Junio de 2003, 21:06 »
0
Necesito hacer una funcion parecida a la de abajo, pero sin usar arrays ni strings, creo que la mejor forma de hacerlo es con punteros pero no se como hacerlo exactamente, asi que si podeis ayudarme os lo agradeceria.

#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include <string.h>

#define TRUE 1
#define FALSE 0

char letras[80];
int aux, cont, contr, indicador, bucle = TRUE;

void main(void)
{
clrscr();
indicador = TRUE;
/* Leer la frase */
printf("Introduce una frase : n");
gets(letras);
strupr(letras);
aux = strlen(letras) - 1;
/* Realizar la busqueda */
for ((cont=0,contr=aux);cont<=aux/2;(++cont, --contr))
{
while (letras[cont] == ' ')
++cont;
while (letras[contr] == ' ')
--contr;
if (letras[cont] != letras[contr])
{
indicador = FALSE;
break;
}
}
/* Escribir mensaje */
if (indicador==TRUE)
printf("SI es un palindromonn");
else
printf("NO es un palindromonn");
getch();
}

P.D: ES para saber si una palabra es un palindromo, es decir si se escribe igual del derecho que del reves.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Problema con Punteros!!!!
« Respuesta #1 en: Viernes 6 de Junio de 2003, 14:06 »
0
Hola, creo que ya debes haber comenzado conesto y quisiera saber si has tenido problemas con la implementacion, para poderte colaborar.

Juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

spyatorio

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Problema con Punteros!!!!
« Respuesta #2 en: Lunes 20 de Septiembre de 2004, 17:07 »
0
hola, creo que lo que tu quieres hacer es el mismo programa con funciones
tienes que tener en claro las siguientes cosas
puedes trabajar con prototipos o sin ellos,

la cosa es saber llamar a la funcion puede ser por valor o referencia
ejem. valor
delclaras

int funcion(void)
{int a;

acciones

return a
}
y para llamar
void main(void)
int b;
b=funcion();
}

si usas, por referencia
void funcion(int*a);

int funcion(void)
{

*a=acciones;
}
y para llamar
void main(void)
int b;
funcion(&b);
}
tambien
void funcion(int&a);

int funcion(void)
{

&a=acciones
}
y para llamar
void main(void)
int b;
funcion(B);
}

SUPER_X

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Problema con Punteros!!!!
« Respuesta #3 en: Lunes 11 de Octubre de 2004, 13:28 »
0
Ay ay ay, la vida es cruel, no querés usar arreglos ni strings? Como vas a hacerlo si estás trabajando con strings? -_-
Me parece que es más fácil invertir la cadena y después compararla a hacer lo que vos hiciste. Y punteros... los strings están implementados como un puntero a caracter.

bool esPalindromo(char* cadena){
   char* cadena_aux;
   unsigned int tam = strlen(cadena);
   for(int i=0; i<tam; i++) cadena_aux=cadena[tam-i-1];
   return !strcmp(cadena,cadena_aux);
};

O algo así... y después simplemente
char* cad;
cout>>"Ingrese una cadena: " cin<<cad;
if(esPalindromo(cad)) cout>>"Es palíndromo">>endl;
else cout>>"No es palíndromo">>endl;

 :huh: Algo así, no estoy seguro de si a los strings declarados como char* podés acceder igual como arreglos, pero bueno... el invertir no es difícil de hacer de cualquier forma.