Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/11/2012, 17:40
OscarMariano
 
Fecha de Ingreso: octubre-2012
Ubicación: Lima
Mensajes: 31
Antigüedad: 12 años
Puntos: 1
Respuesta: Parametro por referencia de una cadena

Cita:
Iniciado por cotolon Ver Mensaje
Acá te dejo un ejemplo:
Declaramos 2 variables de tipo char, y la otra char*, en la que debes ingresar 2 frases. Y estas se mandan a una función que tiene un parámetro char* que coloca todo el texto pasado como parámetro en mayúsculas. Y finalmente escribimos los textos convertidos, pero no en la función, sino que en main().

Código C++:
Ver original
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <ctype.h>
  4. #include <string.h>
  5.  
  6. using namespace std;
  7.  
  8. //Funcion:
  9. void fraseMayusculas(char*);
  10.  
  11. int main()
  12. {
  13.     char texto[120];
  14.     char *ptexto2[120]; //Puntero de char
  15.  
  16.     cout << "Introduzca frase" << endl;
  17.     cin.getline(texto, 120);
  18.  
  19.     cout << "Introduzca frase Puntero" << endl;
  20.     cin.getline(*ptexto2, 120);
  21.     cout << endl;
  22.  
  23.     cout << "Sus textos:" << endl<<endl;
  24.     cout << "Texto1: " << texto << endl << endl;
  25.     cout << "Texto2: " << *ptexto2 << endl << endl;
  26.     cout << endl;
  27.     //Convertimos todo a Mayuscula:
  28.     //No se pasa como &texto
  29.     //A menos que sea un elemento, por ej  &texto[3]
  30.     fraseMayusculas(texto);
  31.     //Pasamos el puntero a la funcion:
  32.     fraseMayusculas(*ptexto2);
  33.  
  34.     //Escribimos texto convertido:
  35.     cout << "Sus textos convertidos:" << endl << endl;
  36.     cout << "Texto1: " << texto << endl << endl;
  37.     cout << "Texto2: " << *ptexto2 << endl << endl;
  38.  
  39.  
  40.     getche();
  41.     return 0;
  42. }
  43.  
  44. void fraseMayusculas(char *frase){
  45.     for (int x = 0; x < 120; x++ )
  46.         if (isalpha(frase[x]))
  47.             frase[x] = toupper(frase[x]);
  48. }
Es necesario que el *ptexto2 al declararlo le pongas [] ? no puede ser simplemente *ptexto2? osea se puede hacer esto? *ptexto2="blabla";
y ese *ptexto2 pasar por referencia a una funcion que lo unico que haga sea mostrar la palabra blablabla? es posible? y si es quisiera saber como porque me sigo partiendo la cabeza con eso y en internet no encuentro nada de eso xD saludos
__________________
Lo mas curioso en esta vida es que todo se hace mas simple cuando lo divides de 2 en 2.