Как найти нули после заданного целого?

Intro: Я делаю программу в C++, где мне нужно найти номер уровня тегов заголовка в заданном коде HTML и строке печати (между начальным и конечным тегами) после номера. Я мог выполнять все части, кроме записи вывода в формате, который требуется.

Таким образом, вопрос заключается в том, как удалить нули после любого целого числа, предполагая, что вы не знаете, сколько нулей оно имеет в конце

Например:

Мой вывод

100000: привет

210000: привет

101000: это

200000: это

312000: конец

Правильный выход:

1: привет

2.1: привет

1.0.1: это

2: что

3.1.2: конец

Может ли кто-нибудь сказать мне, как удалить эти нули после этих чисел и задать период между номерами?

1 ответ

Это, конечно, не самый эффективный, но он работает:

#include <iostream>
#include <algorithm>
#include <sstream>
using namespace std;
string remzero_adddot(int x) { while(x%10==0) x /= 10; stringstream ss; ss << x%10; x /= 10; while(x) { ss << "." << x%10; x/=10; } string result = ss.str(); reverse(result.begin(), result.end()); return result;
}
int main() { cout << remzero_adddot(100000) << endl; cout << remzero_adddot(210000) << endl; cout << remzero_adddot(101000) << endl; cout << remzero_adddot(200000) << endl; cout << remzero_adddot(312000) << endl;
}
</sstream></algorithm></iostream>

licensed under cc by-sa 3.0 with attribution.