C语言的整形数组转换问题求解

将一个int数组变为一个int整数。例如数组{1,2,3,5,6,7,8,9}转换成整数12356789,以此类推

因为一个int最大有好几位数,并非只有一位数的啊,所以要想完整支持很长的整数连接在一起,建议用字符数组的形式接收。如果字符数组比较短的话可能用atol转换成长整型参与其它计算。

img

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{

    int arr[5]={10,20,30,40,50};
    char arr_s[5*7]={'\0'};
    long a;
    for(int i=0;i<5;i++)
    {
        sprintf(arr_s+(strlen(arr_s)),"%d",arr[i]);
    }
    
    printf("字串形式输出:%s\n",arr_s);
    
    a=atol(arr_s);
    printf("整数形式输出:%ld",a);
    
    return 0;
}


    int res = 0;
    for (int i = 0; i < n; i++)
    {
        res = res * 10 + a[i];
    }

a是数组,n是数组长度

for(int i=0;i<8;i++)
{
printf("%d",a[i]);
}


int i;
long long int k=0;
for(i=0;i<n;i++)
{
k=k*10+a[i];
}

但是这只能适用于你的数组元素有效数字个数总长度小于等于19位的情况小,因为长长整型的最大数字也只有19位