Punteros en C - Cadenas, funciones y punteros

Поделиться
HTML-код
  • Опубликовано: 3 янв 2025

Комментарии • 11

  • @fabianespinola8640
    @fabianespinola8640 3 года назад

    Buena explicación!

    • @ochecolbes
      @ochecolbes  3 года назад

      Muchas gracias Fabián! Saludos.

  • @ion4497
    @ion4497 Год назад

    muy bueno

  • @gabrielalexanderperezvarga7902
    @gabrielalexanderperezvarga7902 2 года назад

    Buenos días, diculpe el especificador "%c" a que hace referencia ? solo imprime el caracter que designemos ?

  • @ivanvaldiviam7428
    @ivanvaldiviam7428 3 года назад +1

    Todo lo que se quiere es actualizar desde la funcion, el arreglo de caracteres en main() enviado por referencia. Estoy bloqueado, agradecere tu ayuda...

    • @ochecolbes
      @ochecolbes  3 года назад

      Avisame de todas formas si algo no te quedó claro. Saludos!

  • @paolaestherrochaperez1377
    @paolaestherrochaperez1377 3 года назад +1

    Hola, me podrías ayudar con un programa? Por fiii

    • @ochecolbes
      @ochecolbes  3 года назад

      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!

  • @ivanvaldiviam7428
    @ivanvaldiviam7428 3 года назад +1

    #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;
    }

    • @ochecolbes
      @ochecolbes  3 года назад

      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!

    • @ivanvaldiviam7428
      @ivanvaldiviam7428 3 года назад

      ​@@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...