Foros del Web » Programación para mayores de 30 ;) » Programación General »

Crear Funcion Generica

Estas en el tema de Crear Funcion Generica en el foro de Programación General en Foros del Web. Hola que tal, mi pregunta es la siguiente, como hago para crear una funcion generica, en la cual cuando le ponga las variables dentro haga ...
  #1 (permalink)  
Antiguo 16/07/2005, 04:21
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 22 años, 1 mes
Puntos: 0
Crear Funcion Generica

Hola que tal, mi pregunta es la siguiente, como hago para crear una funcion generica, en la cual cuando le ponga las variables dentro haga lo que necesite.
Me explico mejor.

Cuando yo uso funciones, para hacer un programa modular por decirlo asi para organizar bien el mismo, utilizo funciones, que trabajan con parametros externos, los lee, o tambien los puede modificar ej:

void punto1(int a, int *vec, int *&vec1)

Y donde voy a usar esta funcion, tengo que declarar, las variables a, vec y vec1

Ahora yo quiero hacer una funcion del tipo, toupper por ejemplo, que vos le pones la variable que quieras y te hace una sola cosa, es decir ahora quiero crear una funcion que me devuelva un string en mayusculas, y la voy a usar muy seguido en mi programa y con diferentes variables por ejemplo

mayus(a);
mayus(aux1);

para hacer esta conversion uso un for, y voy convirtiendo caracter a caracter en mayusculas.

Espero haberme explicado bien, si no me explico me avisan y veo como me puedo expresar mejor.
salu2 gracias.
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
  #2 (permalink)  
Antiguo 16/07/2005, 06:09
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 22 años, 1 mes
Puntos: 0
Ya lo logre, soy un estupido jajaja tengo un dia sin dormir es por eso jejeje.
Bueno lo que queria hacer es lo siguiente dejo el codigo por si alguien necesita la misma ayuda alguna vez. Espero que sirva

Código PHP:
char aux2[30];
strcpy(aux2,vec[r].cuenta);
Mayus(aux2);
 
 
void Mayus(char *str)
{
 for(;*
str;str++)
 {
  *
str=toupper(*str);
 }

Lo que hago aca es, recorrer caracter por caracter, y ponerlo en mayuscula para hacer unas comparaciones sobre elementos que ya contengo en un vector, entonces si esta repetido, lo descarto, sino lo inserto en el vector dinamico.
Por ahi les puede servir.
Salu2.
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
  #3 (permalink)  
Antiguo 16/07/2005, 06:19
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 22 años, 1 mes
Puntos: 0
Encontre otra alternativa si se conoce la longitud exacta del elemento con el que se trabaja, si no se puede pasar por parametro tambien.
En este caso trabajo con char de 30 de lonjitud.
Otro ejemplo para que a alguien le sirva.

Código PHP:
char aux2[30];
strcpy(aux2,vec[r].cuenta);
Mayus(aux2);
 
void Mayus(char *str)
int i;
  for(
i=0;i<30;i++)
  {
   
str[i]=toupper(str[i]);
  }

Este ejemplo lo acabo de hacer y me salio bien y lo entiendo, al que no entiendo es el que puse antes que lo trabaje sobre otro ejemplo que tenia que era para recorrer una cadena y ver si era solamente de numeros, o si era mixta, aplique el criterioy salio pero la verdad que no entiendo, el primer ejemplo que puse, si alguien lo entiende y lo puede explicar joyitas, es bueno hacer cosas que uno entiende. jeje
Y este ejemplo es fail, una palabra es un vector de char's entonces en cada posicion del vector paso de minuscula a mayuscula.
Salu2 de nuevo.-
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
  #4 (permalink)  
Antiguo 16/07/2005, 07:38
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
El segundo lo que hace es lo siguiente, un for que se repite mientras *str no sea 0 (el terminador de cadena) ya que *str se evalua a true si el caracter al que apunta str no es 0. El for adelanta una posicion de la cadena en su incremento (al ser del tipo char).
Si la comparacion es verdadera (entra al for por decirlo de alguna manera) se le asigna a *str el valor que devuelve la funcion toupper de justamente el caracter que haya en *str.

No se si me explique muy bien pero no hay demasiado, son 3 lineas jeje
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
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 09:00.