Autor
|
Tema: Como ingresar dos strings como parametros en una funcion (Leído 3,883 veces)
|
SNP
Desconectado
Mensajes: 3
|
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. void instruccion( string cad, string instruccion, int *n , int *k ) { cout<<"INSTRUCCION: "; for( ; isspace(cad[*n])==0 && cad[*n]!=59 && cad[*n]; ++(*n),++(*k) ) { instruccion.insert( *k, cad, *n, 1 ); cout<<cad[*n]; } cout<<endl; }
|
|
|
En línea
|
|
|
|
Kasswed
|
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
Mensajes: 302
|
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. void instruccion( string cad, string instruccion, int *n , int *k ) { cout<<"INSTRUCCION: "; for( ; isspace(cad[*n])==0 && cad[*n]!=59 && cad[*n]; ++(*n),++(*k) ) { instruccion.insert( *k, cad, *n, 1 ); cout<<cad[*n]; } cout<<endl; }
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
Mensajes: 50
|
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
Mensajes: 3
|
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? void instruccion( string cad, string instruct, int *n , int *k ) { cout<<"INSTRUCCION: "; for( ; isspace(cad[n])==0 && cad[n]!=59 && cad[n]; ++(*n),++(*k) ) { instruccion.insert( *k, cad, *n, 1 ); cout<<cad[n]; } cout<<endl; }
Saludos.
|
|
« Última modificación: 16 Mayo 2012, 22:38 pm por SNP »
|
En línea
|
|
|
|
exel
Desconectado
Mensajes: 50
|
El codigo seria void instruccion( string cad, string instruct, int *n , int *k ) { cout<<"INSTRUCCION: "; for( ; isspace(cad [n ])==0 && cad [n ]!=59 && cad [n ]; ++(*n ),++(*k ) ) { instruct.insert( *k, cad, *n, 1 ); cout<<cad[n]; } cout<<endl; }
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Ayuda]como ingresar a mi modem via wi-fi?
Redes
|
stuckey
|
9
|
10,224
|
5 Enero 2014, 18:58 pm
por stuckey
|
|
|
como ingresar numeros en un menú netbeans
Java
|
daniloops
|
1
|
3,336
|
10 Junio 2014, 03:17 am
por gordo23
|
|
|
montar sus strings como quieras
« 1 2 »
Programación Visual Basic
|
DELPHI-XE6
|
16
|
8,649
|
19 Agosto 2014, 23:48 pm
por seba123neo
|
|
|
Cómo Traducir las Strings de un VB.net?
Ingeniería Inversa
|
02k0
|
8
|
5,475
|
29 Septiembre 2015, 23:48 pm
por 02k0
|
|
|
ingresar como root
GNU/Linux
|
jruss
|
1
|
2,501
|
11 Enero 2018, 07:28 am
por Antarezx
|
|