如何将数组中的两位数转换为一个整数并放入新数组中?
示例:1245678933658 到 [12,45,67,89,33,65,80] 如果是奇数,则在最后添加 0。
我的尝试是:
new_array[i]=digits[i]*10+digits[i++]*10/10;
最佳答案
它是否必须是“一行”,或者是否也允许使用更具可读性的代码?请尝试以下操作:
const char* digits = "12456789336581";
int digitIndex=0;
int numbers[100];
int currentNumberIndex = 0;
int currentNumber = 0;
while (digits[digitIndex]) {
currentNumber *=10;
currentNumber += digits[digitIndex] - '0';
digitIndex++;
if ( (digitIndex)%2 == 0) // two digits handled?
{
numbers[currentNumberIndex++] = currentNumber;
currentNumber = 0;
}
}
// handle the case that last number contained just one digit:
if (digitIndex%2) {
currentNumber *=10;
numbers[currentNumberIndex++] = currentNumber;
}
for (int i=0; i < currentNumberIndex; i++)
printf("number[%d]: %d\n", i, numbers[i]);
关于C 将两位数字转换为一位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41622362/