将 Int 中的数字分隔成单独的整数
Separating Digits in Int into Separate Ints
理想情况下,我想取一个整数...13647 并像这样拆分它:
第一个新变量(int)是第一个数字。
第二个是前两位数。
第三个是前三位数...
等等等等。
我无法弄清楚如何在保持高效运行时的同时做到这一点。感谢您的帮助!
您可以尝试以下方法:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int i = 0;
int num = 13647;
char inArr[20];
itoa(num, inArr, 10);
int numArr[strlen(inArr)];
for(i = 0; i < strlen(inArr); i++) {
numArr[i] = num/pow(10, strlen(inArr) - i - 1);
printf("num[%d] = %d\n", i, numArr[i]);
}
return 0;
}
输出将是:
num[0] = 1
num[1] = 13
num[2] = 136
num[3] = 1364
num[4] = 13647
理想情况下,我想取一个整数...13647 并像这样拆分它:
第一个新变量(int)是第一个数字。 第二个是前两位数。 第三个是前三位数... 等等等等。
我无法弄清楚如何在保持高效运行时的同时做到这一点。感谢您的帮助!
您可以尝试以下方法:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int i = 0;
int num = 13647;
char inArr[20];
itoa(num, inArr, 10);
int numArr[strlen(inArr)];
for(i = 0; i < strlen(inArr); i++) {
numArr[i] = num/pow(10, strlen(inArr) - i - 1);
printf("num[%d] = %d\n", i, numArr[i]);
}
return 0;
}
输出将是:
num[0] = 1
num[1] = 13
num[2] = 136
num[3] = 1364
num[4] = 13647