elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como ingresar dos strings como parametros en una funcion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como ingresar dos strings como parametros en una funcion  (Leído 3,915 veces)
SNP

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Como ingresar dos strings como parametros en una funcion
« 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.  


En línea

Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
Re: Como ingresar dos strings como parametros en una funcion
« Respuesta #1 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?


En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Re: Como ingresar dos strings como parametros en una funcion
« Respuesta #2 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.
En línea

exel

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Como ingresar dos strings como parametros en una funcion
« Respuesta #3 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
« Última modificación: 15 Mayo 2012, 23:51 pm por exel » En línea

SNP

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Como ingresar dos strings como parametros en una funcion
« Respuesta #4 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.
« Última modificación: 16 Mayo 2012, 22:38 pm por SNP » En línea

exel

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Como ingresar dos strings como parametros en una funcion
« Respuesta #5 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
« Última modificación: 17 Mayo 2012, 20:37 pm por exel » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda]como ingresar a mi modem via wi-fi?
Redes
stuckey 9 10,261 Último mensaje 5 Enero 2014, 18:58 pm
por stuckey
como ingresar numeros en un menú netbeans
Java
daniloops 1 3,348 Último mensaje 10 Junio 2014, 03:17 am
por gordo23
montar sus strings como quieras « 1 2 »
Programación Visual Basic
DELPHI-XE6 16 8,692 Último mensaje 19 Agosto 2014, 23:48 pm
por seba123neo
Cómo Traducir las Strings de un VB.net?
Ingeniería Inversa
02k0 8 5,517 Último mensaje 29 Septiembre 2015, 23:48 pm
por 02k0
ingresar como root
GNU/Linux
jruss 1 2,536 Último mensaje 11 Enero 2018, 07:28 am
por Antarezx
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines