是否有一个 std::string 函数可以将空格附加到给定的缩进级别
Posted
技术标签:
【中文标题】是否有一个 std::string 函数可以将空格附加到给定的缩进级别【英文标题】:Is there an std::string function to append white space up until a given indentation level 【发布时间】: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
版本是否更干净。
【参考方案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;
【讨论】:
以上是关于是否有一个 std::string 函数可以将空格附加到给定的缩进级别的主要内容,如果未能解决你的问题,请参考以下文章