【问题标题】:How to find zeroes after given integer?如何在给定整数后找到零?
【发布时间】:2014-12-12 21:05:45
【问题描述】:

简介:我正在用 C++ 编写一个程序,我必须在给定的一些 html 代码中找到标题标签的级别数,并在数字之后打印字符串(在开始和结束标签之间)。除了以所需格式写入输出之外,我已经能够完成所有部分。

所以问题是如何在任何整数之后删除零,假设你没有在末尾有多少个零

例如:

我的输出

100000 : 嗨

210000:你好

101000:这个

200000:那个

312000 : 结束

正确的输出:

1:嗨

2.1:你好

1.0.1:这个

2:那个

3.1.2:结束

谁能告诉我如何删除这些数字后面的零并在每个数字之间加上句点?

【问题讨论】:

  • 提示:如果号码存储为(比如)int n,则可以用(n % 10)得到最后一位,除以10可以去掉最后一位。
  • 这行结构一致吗?数字(空格):(空格)单词
  • @jason 是的行结构是一致的,只有 6 位数字。稍后我可以通过在中间添加点来以该格式制作这些数字,但现在我被困在最后删除那些零。

标签: c++ string int


【解决方案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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    相关资源
    最近更新 更多