Как мне удалить первое число из целого числа? - PullRequest
2 голосов
/ 01 декабря 2010

Мне нужно набрать номер, например: 200939915

После этого, который я знаю, мне нужно удалить первое число, чтобы оно стало: 00939915

Каков наилучший способ сделать это?

Ответы [ 3 ]

7 голосов
/ 01 декабря 2010
char *c = "200939915";
char *d = c + 1;
1 голос
/ 01 декабря 2010

Я, вероятно, буду привлекать downvoters, но вот что я бы сделал:

#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;
}

очевидно, поскольку вы хотите, чтобы c изменило std::cin на scanf (или что-то еще) и std::cout на printf (или что-то еще). Имейте в виду, однако, что если вы хотите, чтобы две 00 оставались в левой части числа, ответ Кейна - то, что вы должны сделать. Приветствия

0 голосов
/ 01 декабря 2010

Альтернативный метод, хотя мне больше всего нравится Мэтт Кейн:

unsigned long n = 42424242;
n = n % (unsigned long)pow(10.0, (double)floor(log10(n)));
// n = 2424242;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...