简介:我正在用C ++编写程序,我必须在给定的一些html代码中找到标题标记的级别数,并在编号后打印字符串(在开始和结束标记之间)。除了以所需格式编写输出外,我能够完成所有部分。
所以问题是如何在任何整数之后删除零,假设你最后没有多少个零
例如:
我的输出
100000:嗨
210000:你好
101000:这个
200000:那个
312000:结束
正确输出
1:嗨
2.1:你好
1.0.1:这个
2:那个
3.1.2:结束
有谁能告诉我如何在这些数字之后删除那些零并在每个数字之间加上句点?
答案 0 :(得分: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;
}