Cómo utilizar la función Itoa en C

Como Utilizar La Funcion Itoa En C



El lenguaje de programación C se lanzó hace más de cinco décadas. Desde entonces, ha ganado una inmensa popularidad en el mundo de la programación. Se destaca de los otros lenguajes debido a sus características que incluyen simplicidad estructural, funciones, portabilidad, administración eficiente de la memoria, etc. A pesar de tener otras características, las funciones en C son los activos más destacados que ayudan a muchos usuarios a escribir fragmentos de código sólidos.

Además, itoa es una función no estándar ampliamente utilizada que actúa como un convertidor de tipos de datos. Toma el tipo de datos int como entrada y lo convierte en una cadena. Sin embargo, muchos de vosotros no conocéis su uso. Por lo tanto, esta guía explica de manera concisa cómo usar la función itoa en C sin problemas.







Cómo utilizar la función Itoa en C

Empecemos con lo básico. Aquí está la sintaxis simple de la función itoa:



En t principal ( ) {

    En t en uno = 12345 ;
    carbonizarse cadena [ 20 ] ;
    ahogue ( en uno , cadena , 10 ) ;
    imprimirf ( 'Entero: %d \norte Cadena: %s \norte ' , en uno , cadena ) ;
    devolver 0 ;


}

En el programa dado, los detalles son los siguientes:



  1. número es el número entero
  2. str es el personaje
  3. 10 es el bajo

Ahora, avancemos, escribamos un programa e implementemos la función itoa. Por ejemplo, necesitamos escribir un programa para cambiar los números ingresados ​​en la cadena.





#incluir

#incluir

vacío ahogue ( En t en uno , carbonizarse * cadena , En t base ) {

    En t i = 0 ;
    En t es negativo = 0 ;

    si ( en uno == 0 ) {
cadena [ i ++ ] = '0' ;
cadena [ i ] = ' \0 ' ;
        devolver ;
    }


    si ( en uno < 0 && base != 10 ) {

es negativo = 1 ;
en uno = - en uno ;
    }

    mientras ( en uno != 0 ) {
        En t movimiento rápido del ojo = en uno % base ;

cadena [ i ++ ] = ( movimiento rápido del ojo > 9 ) ? ( movimiento rápido del ojo - 10 ) + 'a' : movimiento rápido del ojo + '0' ;

en uno = en uno / base ;
    }

    si ( es negativo && base == 10 )
cadena [ i ++ ] = '-' ;

cadena [ i ] = ' \0 ' ;

    En t comenzar = 0 ;
    En t fin = i - 1 ;


    mientras ( comenzar < fin ) {

        carbonizarse temperatura = cadena [ comenzar ] ;
cadena [ comenzar ] = cadena [ fin ] ;
cadena [ fin ] = temperatura ;
comenzar ++;
fin --;
    }
}

En t principal ( ) {
    En t en uno ;
    imprimirf ( 'Ingrese un número entero: ' ) ;
   
    si ( escanear ( '%d' , & en uno ) != 1 ) {
        fprintf ( stderr , 'Entrada no válida. Introduzca un número entero. \norte ' ) ;
        devolver EXIT_FAILURE ;
    }

    En t tamaño máximo = snprintf ( NULO , 0 , '%d' , en uno ) + 1 ;
    carbonizarse * cadena = ( carbonizarse * ) malloc ( tamaño máximo ) ;

    si ( cadena == NULO ) {
        fprintf ( stderr , 'Error en la asignación de memoria \norte ' ) ;
        devolver EXIT_FAILURE ;
    }


    ahogue ( en uno , cadena , 10 ) ;

    imprimirf ( 'Entero: %d \norte Cadena: %s \norte ' , en uno , cadena ) ;

    gratis ( cadena ) ;

    devolver 0 ;


}

En el programa anterior, itoa (int num, char *str, int base) es la función itoa. Además, la siguiente sintaxis asigna directamente cero al resultado cuando el número de entrada también es cero:

si ( en uno == 0 ) {

cadena [ i ++ ] = '0' ;
cadena [ i ] = ' \0 ' ;
    devolver ;


}

Cuando el número de entrada es negativo y la base tampoco es 10, las siguientes líneas del programa establecerán el indicador negativo:



si ( en uno < 0 && base != 10 ) {

es negativo = 1 ;
en uno = - en uno ;

El siguiente bucle procesa todos los dígitos y los convierte en el carácter correspondiente. Por lo tanto, para bases mayores que 10, el programa utiliza las letras “a” a “f” para los dígitos del 10 al 15.

}

mientras ( en uno != 0 ) {

    En t movimiento rápido del ojo = en uno % base ;

cadena [ i ++ ] = ( movimiento rápido del ojo > 9 ) ? ( movimiento rápido del ojo - 10 ) + 'a' : movimiento rápido del ojo + '0' ;

en uno = en uno / base ;
   
}

Cuando el número es originalmente negativo y la base es 10, el programa agregará el signo negativo a una cadena de resultado.

si ( es negativo && base == 10 )

cadena [ i ++ ] = '-' ;

Las siguientes líneas terminan la cadena de resultado y luego la invierten a medida que los dígitos se obtienen en orden inverso durante el proceso de conversión:

cadena [ i ] = ' \0 ' ;

// Invertir la cadena

En t comenzar = 0 ;

En t fin = i - 1 ;

mientras ( comenzar < fin ) {

    carbonizarse temperatura = cadena [ comenzar ] ;
cadena [ comenzar ] = cadena [ fin ] ;
cadena [ fin ] = temperatura ;
comenzar ++;
fin --;


}

Por lo tanto, el programa toma el número entero como entrada y asigna la memoria para la representación de la cadena. Después de eso, llama a itoa para convertir el número entero en la cadena e imprime el número entero original. Finalmente, libera la memoria asignada. Por ejemplo, démosle un número al programa:

Sin embargo, si ingresa un número no entero, el programa mostrará el siguiente resultado:

Conclusión

Así es como puedes implementar y usar fácilmente la función itoa en C. Usamos un ejemplo detallado que contiene múltiples funciones para convertir un número entero en una cadena. Recuerde, es sólo un ejemplo, pero puede combinar la función itoa con varias funciones para escribir programas increíbles.