将数字放在int中但不对其求和

时间:2016-03-07 00:36:57

标签: c integer

我想在我的整数中加入一些数字,但我不想总结它们,例如: 我有int car = 500;,我想在其末尾添加一个数字5,但我不想总结5005,我希望它看起来像5005。我怎么能这样做?

3 个答案:

答案 0 :(得分:3)

// Only works for digits <10
int new_digit = 5;

// "Shift" the current value 1 digit left.
car *= 10;

// Append the new digit
car += new_digit;

要考虑的另一件事:如果你需要操纵这样的数字,int是正确的数据类型吗?也许你最好用一根绳子?

答案 1 :(得分:1)

不会像下面这么简单吗?

int car = 500;
car *= 10;  //adding another digit -> 5000
car += 5;  // add that 5 -> 5005

答案 2 :(得分:0)

其他答案已经告诉你如何通过数学乘以10来做到这一点。根据你的需要,你也可以使用字符串,如下所示:

player.getInventory().setItem(paramInt, paramItemStack)

如果你走这条路,当然,你必须时刻小心,让角色阵列足够大,以容纳你在其中存储的字符串。对于生产代码,很多人建议不要使用int car = 500; int newdigit = 5; char carstr[10], suffix[10], newstr[20]; snprintf(carstr, 10, "%d", car); snprintf(suffix, 10, "%d", newdigit); strcpy(newstr, carstr); strcat(newstr, suffix); printf("%s\n", newstr); /* or you can convert new digit string back to int */ int newnum = atoi(newstr); printf("%d\n", newnum); strcpy之类的函数,因为它太容易让最终溢出底层字符数组。