【问题标题】:Is there an std::string function to append white space up until a given indentation level是否有一个 std::string 函数可以将空格附加到给定的缩进级别
【发布时间】:2018-04-16 05:24:37
【问题描述】:

我正在尝试获得以下效果:

This is a message            []
This is a different message  []
Short                        []
LOOOOOOOOOOOOOOOOOOOOOOOOOONG[]

有没有办法创建一个字符串,如果可能的话,给定的参数总是从给定的缩进级别开始?

例如string(indentation level, message1, message 2)

【问题讨论】:

  • 这是一个非常具体的用例。不太可能存在这样的内置函数。你可以编写一个免费的函数来做这件事。
  • 先找到最大长度然后使用来自<iomanip>std::setw(n) 修饰符要容易得多。
  • 在不知道LOOOOOOOOOOOOOOOOOOOOOOOOOONG 有多长的情况下,您无法对齐[]
  • 这是为了对齐输出到屏幕,还是需要修改字符串本身?
  • 一旦你知道长度,还有一个std::string 构造函数获取字符串的长度和你想要重复的字符。我不确定那个或std::setw 版本是否更干净。

标签: c++ string std


【解决方案1】:

标准库中不存在类似的东西(据我所知),但您应该能够很容易地编写一些东西来实现这一点。

std::string IndentedString(int n, std::string message) {

    // Construct string of 'n - message.length' spaces
    std::string indent(n - message.length, ' ');

    return message + indent;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 2016-09-01
    • 2018-02-27
    • 2020-05-09
    • 2012-09-15
    相关资源
    最近更新 更多