Todo lo que se quiere es actualizar desde la funcion, el arreglo de caracteres en main() enviado por referencia. Estoy bloqueado, agradecere tu ayuda...
#include #include #include #include #include // Conversion de Double a String, Paso por Referencia a Funcion de Arreglo de Caracteres int main() { char fstr[15]={0},*ss; int fDMSTR(); double angNUM=-76.51675;
// Puntero a Cadena ss=fstr;
// Llamada a funcion y paso por Referencia fDMSTR(angNUM,ss);
// Contenido Puntero Remoto Actualizado desde funcion en Main(ahora angSTR) printf(" Contenido de Puntero ss (String value) = %s ",ss);
return 0; } /*Convierte Double a String*/ int fDMSTR(double angDEG, char *pp) { char angSTR[15]={0},*hh; float angTXT;
// Asignacion Double a Float angTXT=angDEG;
// Mostrando Double a Float printf(" Double (%lf) to Float (%f) ",angDEG,angTXT); // Puntero Local apunta a Puntero Remoto hh=pp;
// Conversion Float to String sprintf(angSTR,"%.5f",angDEG);
// Mostrando Float to String printf(" Float (%f) to String (%s) ",angTXT,angSTR);
// Actualizacion de Puntero Remoto con valor convertido hh=angSTR;
// Visualizacion Contenido Puntero Remoto Actualizado, desde Funcion (ahora angSTR) printf(" Contenido de Puntero hh (String value) = %s ",hh);
Qué tal Iván? El tema aquí es que el valor de hh ya no coincide con ss del main (que está en pp en la función) cuando hacés "hh=angSTR". Si querés modificar el valor de ss del main, deberías mandar su dirección y usar un puntero doble dentro de la función (y ahí modificar su valor). Otra opción es colocar al final de la función fDMSTR() la instrucción "strcpy(pp,hh);", así copiás la cadena a la que apunta hh a la cadena del main() a la que apunta ss. Saludos!
@@ochecolbes Thanks ! or la premura lo resolvi con strcpy. Ahora, al trabajar con estructuras y asignarle valores por funciones externas y mostrarlas en pantalla sale basura (terminos extraños). Favor de indicar como se debe inicializar una Estructura, mas especificamente un Array de Estructura, lo he intentado con un for, a los numeros 0 y a los char o strings, un espacio en blanco, pero los caracteres extraños siguen apareciendo...De antemano, GRACIAS...
Buena explicación!
Muchas gracias Fabián! Saludos.
muy bueno
Buenos días, diculpe el especificador "%c" a que hace referencia ? solo imprime el caracter que designemos ?
Todo lo que se quiere es actualizar desde la funcion, el arreglo de caracteres en main() enviado por referencia. Estoy bloqueado, agradecere tu ayuda...
Avisame de todas formas si algo no te quedó claro. Saludos!
Hola, me podrías ayudar con un programa? Por fiii
Hola Paola! Perdón, no andaba revisando los comentarios desde hace un tiempo. Si igual seguís necesitando, podés plantear el programa aquí. Saludos!
#include
#include
#include
#include
#include
// Conversion de Double a String, Paso por Referencia a Funcion de Arreglo de Caracteres
int main()
{
char fstr[15]={0},*ss;
int fDMSTR();
double angNUM=-76.51675;
// Puntero a Cadena
ss=fstr;
// Llamada a funcion y paso por Referencia
fDMSTR(angNUM,ss);
// Contenido Puntero Remoto Actualizado desde funcion en Main(ahora angSTR)
printf("
Contenido de Puntero ss (String value) = %s
",ss);
return 0;
}
/*Convierte Double a String*/
int fDMSTR(double angDEG, char *pp)
{
char angSTR[15]={0},*hh;
float angTXT;
// Asignacion Double a Float
angTXT=angDEG;
// Mostrando Double a Float
printf("
Double (%lf) to Float (%f)
",angDEG,angTXT);
// Puntero Local apunta a Puntero Remoto
hh=pp;
// Conversion Float to String
sprintf(angSTR,"%.5f",angDEG);
// Mostrando Float to String
printf("
Float (%f) to String (%s)
",angTXT,angSTR);
// Actualizacion de Puntero Remoto con valor convertido
hh=angSTR;
// Visualizacion Contenido Puntero Remoto Actualizado, desde Funcion (ahora angSTR)
printf("
Contenido de Puntero hh (String value) = %s
",hh);
return 0;
}
Qué tal Iván? El tema aquí es que el valor de hh ya no coincide con ss del main (que está en pp en la función) cuando hacés "hh=angSTR". Si querés modificar el valor de ss del main, deberías mandar su dirección y usar un puntero doble dentro de la función (y ahí modificar su valor). Otra opción es colocar al final de la función fDMSTR() la instrucción "strcpy(pp,hh);", así copiás la cadena a la que apunta hh a la cadena del main() a la que apunta ss. Saludos!
@@ochecolbes Thanks ! or la premura lo resolvi con strcpy. Ahora, al trabajar con estructuras y asignarle valores por funciones externas y mostrarlas en pantalla sale basura (terminos extraños). Favor de indicar como se debe inicializar una Estructura, mas especificamente un Array de Estructura, lo he intentado con un for, a los numeros 0 y a los char o strings, un espacio en blanco, pero los caracteres extraños siguen apareciendo...De antemano, GRACIAS...