如何从整数中删除第一个数字?

时间:2010-11-30 23:22:44

标签: c

我需要输入一个如下数字:200939915

执行此操作后,我知道如何操作,我需要删除第一个数字,使其成为:00939915

这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:7)

char *c = "200939915";
char *d = c + 1;

答案 1 :(得分:1)

我可能会吸引那些贬低者,但这就是我要做的事情:

#include <iostream>
#include <math.h>

int main()
{
    int number;
    std::cin >> number;

    int temp = number;
    int digits = 0;
    int lastnumber = 0;
    while(temp!=0)
    {
        digits++;
        lastnumber = temp % 10;
        temp = temp/10;
    }

    number =  number % (lastnumber * (int)pow(10,digits-1));
    std::cout << number << std::endl;
    return 0;
}

显然,因为您希望将其更改为std::cinscanf(或其他)和std::coutprintf(或其他)。请记住,如果你想让两个00保持在数字的左侧,凯恩的答案就是你应该做的。干杯

答案 2 :(得分:0)

另一种方法,虽然我喜欢Matt Kane最好的方法:

unsigned long n = 42424242;
n = n % (unsigned long)pow(10.0, (double)floor(log10(n)));
// n = 2424242;