Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SNP en 14 Mayo 2012, 23:50 pm



Título: Como ingresar dos strings como parametros en una funcion
Publicado por: SNP en 14 Mayo 2012, 23:50 pm
Hola, comense a programar un ensamblador y todo iva bien hasta que intente ingresar dos strings en una funcion, la cual me resulta en un error.

Varias personas me han comentado que utilizando malloc puedo resolver el problema. Pero me caen mal y preferi preguntar aqui.

 
Código
  1. void instruccion( string cad, string instruccion, int *n , int *k )
  2.  
  3. {
  4.  
  5.    cout<<"INSTRUCCION: ";
  6.  
  7.  
  8.  
  9.    for( ; isspace(cad[*n])==0 && cad[*n]!=59 && cad[*n];  ++(*n),++(*k) )  
  10.    {
  11.  
  12.        instruccion.insert( *k, cad, *n, 1 );
  13.  
  14.        cout<<cad[*n];
  15.  
  16.    }
  17.  
  18.        cout<<endl;
  19.  
  20. }
  21.  
  22.  
  23.  


Título: Re: Como ingresar dos strings como parametros en una funcion
Publicado por: Kasswed en 15 Mayo 2012, 02:27 am
Ese código no tiene por dónde cogerlo.

¿Has leído algo de C++?

Además no sé por qué dices que trabajs en ensamblador?

¿Qué es lo que quieres conseguir con la función instruccion?


Título: Re: Como ingresar dos strings como parametros en una funcion
Publicado por: farresito en 15 Mayo 2012, 02:37 am
Hola, comense a programar un ensamblador y todo iva bien hasta que intente ingresar dos strings en una funcion, la cual me resulta en un error.

Varias personas me han comentado que utilizando malloc puedo resolver el problema. Pero me caen mal y preferi preguntar aqui.

 
Código
  1. void instruccion( string cad, string instruccion, int *n , int *k )
  2.  
  3. {
  4.  
  5.    cout<<"INSTRUCCION: ";
  6.  
  7.  
  8.  
  9.    for( ; isspace(cad[*n])==0 && cad[*n]!=59 && cad[*n];  ++(*n),++(*k) )  
  10.    {
  11.  
  12.        instruccion.insert( *k, cad, *n, 1 );
  13.  
  14.        cout<<cad[*n];
  15.  
  16.    }
  17.  
  18.        cout<<endl;
  19.  
  20. }
  21.  
  22.  
  23.  

Empezaste a programar un ensamblador o a programar ensamblador? De todos modos, deberías tener un poco mas de conocimiento, sea el caso que sea, porque el código es difícil de entender. Créeme: en su momento yo también me motive con programar lo que apenas habría podido. Y fue una perdida de tiempo. Te recomiendo que aprendas lo básico. Si realmente tienes conocimiento acerca de temas avanzados, yo tampoco tengo ni idea de como coger este código.

Por cierto, o lo programas en C o en C++, pero no mezcles C y C++, porque según lo que utilices... Te saldrán comportamientos raros raros... A la que te vayas un poco, vas a flipar. Y lo experimente en primera persona.


Título: Re: Como ingresar dos strings como parametros en una funcion
Publicado por: exel en 15 Mayo 2012, 23:10 pm
 El error se encuentra en la palabra "instruccion". Tanto el nombre de la variable como el de la funcion son iguales y esto no debe ser asi. Cambiandole el nombre al parametro String instruccion creo que ya lo tendras solucionado.

¿Qué es lo que quieres conseguir con la función instruccion?

 Si mal no entiendo, recorre el primer string y almacena cada caracter en el segundo y a la vez lo imprime en pantalla. Todo eso siempre y cuando no sea un espacio, un punto y coma ni el caracter de final de cadena '\0'. Pero no le veo utilidad alguna en que tenga que recibir un puntero a los indices de cada string.

Saludos


Título: Re: Como ingresar dos strings como parametros en una funcion
Publicado por: SNP en 16 Mayo 2012, 21:54 pm
El error se encuentra en la palabra "instruccion". Tanto el nombre de la variable como el de la funcion son iguales y esto no debe ser asi. Cambiandole el nombre al parametro String instruccion creo que ya lo tendras solucionado.

 Si mal no entiendo, recorre el primer string y almacena cada caracter en el segundo y a la vez lo imprime en pantalla. Todo eso siempre y cuando no sea un espacio, un punto y coma ni el caracter de final de cadena '\0'. Pero no le veo utilidad alguna en que tenga que recibir un puntero a los indices de cada string.

Saludos

Bien, eso es lo que hace la funcion. De manera que cambiando el nombre de la variable o el nombre de la funcion dejarian de estar en conflicto. Ya veo, y con respecto a lo de los punteros en cada indice, bueno creo que exajere al ponerlos, pero, tengo otra funcion que de igual forma utilizo punteros en los indices y no representa ningun problema. Es lo mismo si utilizo o no el apuntador?

En fin, solucionado seria algo asi, no?
Código
  1. void instruccion( string cad, string instruct, int *n , int *k )
  2.  
  3. {
  4.  
  5.    cout<<"INSTRUCCION: ";
  6.  
  7.  
  8.  
  9.    for( ; isspace(cad[n])==0 && cad[n]!=59 && cad[n];  ++(*n),++(*k) )  
  10.    {
  11.  
  12.        instruccion.insert( *k, cad, *n, 1 );
  13.  
  14.        cout<<cad[n];
  15.  
  16.    }
  17.  
  18.        cout<<endl;
  19.  
  20. }
  21.  
 

Saludos.


Título: Re: Como ingresar dos strings como parametros en una funcion
Publicado por: exel en 17 Mayo 2012, 20:07 pm
 El codigo seria

Código
  1. void instruccion( string cad, string instruct, int *n , int *k )
  2.  
  3. {
  4.  
  5.    cout<<"INSTRUCCION: ";
  6.  
  7.  
  8.  
  9.    for( ; isspace(cad[n])==0 && cad[n]!=59 && cad[n];  ++(*n),++(*k) )  
  10.    {
  11.  
  12.        instruct.insert( *k, cad, *n, 1 );
  13.  
  14.        cout<<cad[n];
  15.  
  16.    }
  17.  
  18.        cout<<endl;
  19.  
  20. }
  21.  

 En concepto, la unica diferencia seria lo que pasas como argumento en cada llamada a la funcion. Sin embargo, en realidad dentro del sistema suceden procesos totalmente diferentes. Es un tema de arquitectura de computadores

Saludos