• Sábado 14 de Diciembre de 2024, 20:34

Autor Tema:  Duda Con String's,como Parámetro¡  (Leído 1634 veces)

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Duda Con String's,como Parámetro¡
« en: Domingo 13 de Abril de 2008, 20:21 »
0
Hola,lo que quiero saber es si se puede utlizar un string como un bloque para pasarlo como parámetro.Me explico con un ejemplo:

yo tengo la siguiente cadena:

string cadena: HOLA/ADIOS    y quiero sacar esa cadena y meterla en "nuevacadena",para utilizar nuevacadena y usarla como parámetro de entrada de una función.

Yo solo sé una manera de almacenar,

void FuncionExtraer(){
    int i=0;
        while (cadena !='/')
                nuevacadena=cadena;
       i++;
      }

void Funcion2(nuevacadena){   AQUI COMO PUEDO METER NUEVACADENA?

}


int main(){
   FuncionExtraer();
   Funcion2(nuevacadena)

}


ENtendeis mi pregunta?,,lo que quiero meter a Funcion2 nuevacadena,y no se como hacerlo,podeís ayudarme????

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Duda Con String's,como Parámetro¡
« Respuesta #1 en: Domingo 13 de Abril de 2008, 21:44 »
0
No se si entendi, no es acaso esto lo que quieres?

Código: Text
  1.  
  2. void Funcion2(char nuevacadena[])
  3. {
  4. }
  5.  
  6.  

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: Duda Con String's,como Parámetro¡
« Respuesta #2 en: Domingo 13 de Abril de 2008, 22:03 »
0
No.no es exactamente eso..yo lo que quiero es utilizar como parámetro un string que provenga de otra función....como hago eso?

Elforious

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Duda Con String's,como Parámetro¡
« Respuesta #3 en: Lunes 14 de Abril de 2008, 00:08 »
0
Lo que se me ocurre en este momento, sería que declares a "nuevacadena" en el main y que le mandes "nuevacadena" por referencia a "FuncionExtraer" y así la podes usar, con los datos cambiados, en "Funcion2"...

Espero haber ayudado...

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: Duda Con String's,como Parámetro¡
« Respuesta #4 en: Martes 15 de Abril de 2008, 11:10 »
0
quizas el problema sea usar variables locales, localiza una nueva cadena con malloc y pasale el puntero a la nueva funcion.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Duda Con String's,como Parámetro¡
« Respuesta #5 en: Martes 15 de Abril de 2008, 20:14 »
0
A ver, examine un poco mas tu problema, y me parece que tal vez hay un error en tu logica, y te falta entender como maneja C/C++ las cadenas internamente.

En C/C++, todas las cadenas deben terminar con el caracter nulo '\0', las funciones de la libreria estandar de C/C++ esperan que la cadena termine con nulo, pues eso les indica en donde termina la cadena, si no encuentran el caracter nulo, siguen leyendo en la memoria hasta que encuentren el caracter nulo, con lo cual puedes obtener resultados inesperados si la cadena no termina en nulo.

Ahora bien, corrigeme si me equivoco, pero supongo que lo que tu tratas de hacer, es dividir la cadena en dos, tomando tu ejemplo quieres dividir "hola/adios" en dos, tomando solo el hola, y utilizando el caracter diagonal como separador, entonces si encuentras el separador, dejas de pasar el contenido de una cadena a la siguiente cadena. Eso esta muy bien, pero lo unico que te faltaria es terminar tu cadena con un nulo, para que el resto de las funciones sepan en donde termina tu cadena

Código: Text
  1.  
  2. void FuncionExtraer(){
  3. int i=0;
  4. while (cadena[i] !='/')
  5. nuevacadena[i]=cadena[i];
  6. i++;
  7. }
  8.  
  9. /// Con esto le indicas a C/C++ donde termina tu cadena
  10. nuevacadena[i] = '\0';
  11.  
  12.  

Ahora, si no es eso lo que quieres, explica con mas detalle.

Saludos :hola:

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================