Cómo convertir un número dado a una array de caracteres

Dado un número entero N, la tarea es convertirlo en una array de caracteres.

Ejemplo:  

Entrada: N = 2020 
Salida: {2, 0, 2, 0} 
Explicación: Aquí char array arr[] = {2, 0, 2, 0}
Entrada: N = 12349 
Salida: {1, 2, 3, 4, 9} 
Explicación: Aquí char array arr[] = {1, 2, 3, 4, 9}

 

Enfoque:  el enfoque básico para hacer esto es encontrar recursivamente todos los dígitos de N e insertarlos en la array de caracteres requerida. 

  1. Cuente los dígitos totales en el número.
  2. Declare una array char de dígitos de tamaño en el número.
  3. Separar enteros en dígitos y acomodarlos a una array de caracteres.
  4. Agregar el valor ASCII del carácter ‘0’ es 48 en cada elemento de la array.

A continuación se muestra la implementación del enfoque anterior:

C

// C program to convert integer
// number into character array
 
#include <stdio.h>
#include <stdlib.h>
 
// Function to convert integer to
// character array
char* convertIntegerToChar(int N)
{
 
    // Count digits in number N
    int m = N;
    int digit = 0;
    while (m) {
 
        // Increment number of digits
        digit++;
 
        // Truncate the last
        // digit from the number
        m /= 10;
    }
 
    // Declare char array for result
    char* arr;
 
    // Declare duplicate char array
    char arr1[digit];
 
    // Memory allocation of array
    arr = (char*)malloc(digit);
 
    // Separating integer into digits and
    // accommodate it to character array
    int index = 0;
    while (N) {
 
        // Separate last digit from
        // the number and add ASCII
        // value of character '0' is 48
        arr1[++index] = N % 10 + '0';
 
        // Truncate the last
        // digit from the number
        N /= 10;
    }
 
    // Reverse the array for result
    int i;
    for (i = 0; i < index; i++) {
        arr[i] = arr1[index - i];
    }
 
    // Char array truncate by null
    arr[i] = '\0';
 
    // Return char array
    return (char*)arr;
}
 
// Driver Code
int main()
{
 
    // Given number
    int N = 12349;
    int len = 5;
 
    // Function call
    char* arr = convertIntegerToChar(N);
 
    // Print char array
    for (int i = 0; i < len; i++)
        printf("%c, ", arr[i]);
 
    return 0;
}

Java

// Java program to convert integer
// number into character array
class GFG{
     
// Function to convert integer to
// character array
static char[] convertIntegerToChar(int N)
{
 
    // Count digits in number N
    int m = N;
    int digit = 0;
     
    while (m > 0)
    {
         
        // Increment number of digits
        digit++;
 
        // Truncate the last
        // digit from the number
        m /= 10;
    }
 
    // Declare char array for result
    char[] arr;
 
    // Declare duplicate char array
    char []arr1 = new char[digit + 1];
 
    // Memory allocation of array
    arr = new char[digit];
 
    // Separating integer into digits and
    // accommodate it to character array
    int index = 0;
     
    while (N > 0)
    {
         
        // Separate last digit from
        // the number and add ASCII
        // value of character '0' is 48
        arr1[++index] = (char)(N % 10 + '0');
 
        // Truncate the last
        // digit from the number
        N /= 10;
    }
 
    // Reverse the array for result
    int i;
    for(i = 0; i < index; i++)
    {
        arr[i] = arr1[index - i];
    }
 
    // Return char array
    return (char[])arr;
}
 
// Driver Code
public static void main(String[] args)
{
     
    // Given number
    int N = 12349;
    int len = 5;
 
    // Function call
    char[] arr = convertIntegerToChar(N);
 
    // Print char array
    for(int i = 0; i < len; i++)
        System.out.printf("%c, ", arr[i]);
}
}
 
// This code is contributed by amal kumar choubey

Python3

# Python3 program to convert integer
# number into character array
 
# Function to convert integer to
# character array
def convertIntegerToChar(N):
 
    # Count digits in number N
    m = N;
    digit = 0;
 
    while (m > 0):
 
        # Increment number of digits
        digit += 1;
 
        # Truncate the last
        # digit from the number
        m /= 10;   
 
    # Declare char array for result
    arr = ['0' for i in range(digit)]
 
    # Declare duplicate char array
    arr1 = ['0' for i in range(digit + 1)];
 
    # Separating integer
    # into digits and
    # accommodate it
    # to character array
    index = 0;
 
    while (N > 0):
        index += 1;
 
        # Separate last digit from
        # the number and add ASCII
        # value of character '0' is 48
        arr1[index] = chr(int(N % 10 + 48));       
 
        # Truncate the last
        # digit from the number
        N = N // 10;   
 
    # Reverse the array for result
    for i in range(0, index):
        arr[i] = arr1[index - i];   
 
    # Return char array
    return arr;
 
# Driver Code
if __name__ == '__main__':
 
    # Given number
    N = 12349;
    len = 5;
 
    # Function call
    arr = convertIntegerToChar(N);
 
    # Print array
    for i in range(0, len, 1):
        print(arr[i], end = " ");
 
# This code is contributed by gauravrajput1

C#

// C# program to convert integer
// number into character array
using System;
 
class GFG{
     
// Function to convert integer to
// character array
static char[] convertintToChar(int N)
{
 
    // Count digits in number N
    int m = N;
    int digit = 0;
     
    while (m > 0)
    {
         
        // Increment number of digits
        digit++;
 
        // Truncate the last
        // digit from the number
        m /= 10;
    }
 
    // Declare char array for result
    char[] arr;
 
    // Declare duplicate char array
    char []arr1 = new char[digit + 1];
 
    // Memory allocation of array
    arr = new char[digit];
 
    // Separating integer into digits and
    // accommodate it to character array
    int index = 0;
     
    while (N > 0)
    {
         
        // Separate last digit from
        // the number and add ASCII
        // value of character '0' is 48
        arr1[++index] = (char)(N % 10 + '0');
 
        // Truncate the last
        // digit from the number
        N /= 10;
    }
 
    // Reverse the array for result
    int i;
    for(i = 0; i < index; i++)
    {
        arr[i] = arr1[index - i];
    }
 
    // Return char array
    return (char[])arr;
}
 
// Driver Code
public static void Main(String[] args)
{
     
    // Given number
    int N = 12349;
    int len = 5;
 
    // Function call
    char[] arr = convertintToChar(N);
 
    // Print char array
    for(int i = 0; i < len; i++)
        Console.Write("{0}, ", arr[i]);
}
}
 
// This code is contributed by amal kumar choubey

Javascript

<script>
    // Javascript program to convert integer
    // number into character array
     
    // Function to convert integer to
    // character array
    function convertIntegerToChar(N)
    {
 
        // Count digits in number N
        let m = N;
        let digit = 0;
 
        while (m > 0)
        {
 
            // Increment number of digits
            digit++;
 
            // Truncate the last
            // digit from the number
            m = parseInt(m / 10, 10);
        }
 
        // Declare char array for result
        let arr;
 
        // Declare duplicate char array
        let arr1 = new Array(digit + 1);
 
        // Memory allocation of array
        arr = new Array(digit);
 
        // Separating integer into digits and
        // accommodate it to character array
        let index = 0;
 
        while (N > 0)
        {
 
            // Separate last digit from
            // the number and add ASCII
            // value of character '0' is 48
            arr1[++index] = String.fromCharCode(N % 10 + '0'.charCodeAt());
 
            // Truncate the last
            // digit from the number
            N = parseInt(N / 10, 10);
        }
 
        // Reverse the array for result
        let i;
        for(i = 0; i < index; i++)
        {
            arr[i] = arr1[index - i];
        }
 
        // Return char array
        return arr;
    }
     
    // Given number
    let N = 12349;
    let len = 5;
  
    // Function call
    let arr = convertIntegerToChar(N);
  
    // Print char array
    for(let i = 0; i < len; i++)
        document.write(arr[i] + ", ");
 
// This code is contributed by divyeshtsbsdiya07
</script>
Producción: 

1, 2, 3, 4, 9,

 

Publicación traducida automáticamente

Artículo escrito por manikumartharmaraj y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *