How to convert an array of multi‑digit numbers to a number in C

1 Answer

0 votes
#include <stdio.h>
#include <string.h>
#include <stdlib.h> // atoi()

// ------------------------------------------------------------
// ArrayToNumber
// Converts an int[] into a single integer by concatenating
// each element as a string. Works for multi-digit numbers.
// Example: {14, 6, 9, 31, 20} ->14693120
// ------------------------------------------------------------
int ArrayToNumber(int arr[], int length) {
    char buffer[256] = "";   // final concatenated string
    char temp[32];           // temporary buffer for each number

    for (int i = 0; i < length; i++) {
        sprintf(temp, "%d", arr[i]);   // convert number to string
        strcat(buffer, temp);          // concatenate as text
    }

    return atoi(buffer);               // convert final string to int
}

int main() {
    int arr[] = { 14, 6, 9, 31, 20 };
    int length = sizeof(arr) / sizeof(arr[0]);

    int n = ArrayToNumber(arr, length);

    printf("n = %d\n", n);

    return 0;
}



/*
run:

n = 14693120

*/

 



answered 2 days ago by avibootz
...