SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: mendyandola en Viernes 6 de Agosto de 2010, 20:52

Título: duda con una funcion que devuelve una cadena
Publicado por: mendyandola en Viernes 6 de Agosto de 2010, 20:52
Hola a todos soy nuevo programando en C++ y en este foro, fracias de antemano a todos y un saludo...

Estoy haciendo pruebas ya que hace mil que no programo y tengo la la siguiente duda, quiero hacer una funcion que devuelva una cadena de caracteres, solo me funciona para devolver un solo caracter pero como se hace para devolver una cadena?

Ej: (No funciona ;)

#include <iostream>
#include <stdlib.h>

using namespace std;

char funcion();
char funcion2();

int main()
{
char valor;
char valor2[30];

    valor=funcion();
    cout << valor;
   
    valor2=funcion2();
    cout << valor2;
 
  printf("n");
  system("PAUSE");   
  return 0;
}


char funcion(){
    return 'a';
}

char funcion2(){
    return "Micadena";  
}
Título: Re: duda con una funcion que devuelve una cadena
Publicado por: pmike en Sábado 7 de Agosto de 2010, 18:25
Te falta uno de los aspectos mas importantes en C, 'LOS PUNTEROS'

Tienes que declarar así:

char *valor2[30];
Título: Re: duda con una funcion que devuelve una cadena
Publicado por: mendyandola en Sábado 7 de Agosto de 2010, 18:46
ok, se como pasar parametros a una funcion por valor y referencia, pero en este caso como seria la llamada a la funcion?

gracias por contestar.
Título: Re: duda con una funcion que devuelve una cadena
Publicado por: Radger en Sábado 7 de Agosto de 2010, 19:34
Aqui te pongo un pequeño ejemplo del manejo de strings.

Código: C++
  1.  
  2. char* funcion(char *cadena)
  3. {
  4. return cadena;
  5. }
  6.  
  7. int main()
  8. {
  9. char *str = "Welcome.";
  10. cout << funcion(str);
  11.  
  12. return 0;
  13. }
  14.  
  15.  

Basicamente para pasar strings como paremetros o como valor devuelto por una funcion es char*.