有没有办法在 c++ 上打印一个字符串 n 次。 例如
int main(){
int n = 5;
cout << string(n, '|') << endl;
return 0;
}
输出是|||||
,但想要的输出是| | | | |
由于 string() 不能使用空格“”,如果我想在它们之间添加空格,我该如何处理?
答案 0 :(得分:3)
您可以为此使用标准算法 fill_n
#include <iostream>
#include <algorithm>
int main()
{
int const n = 5;
std::fill_n(std::ostream_iterator<char>{std::cout, " "}, n, '|');
std::cout << '\n';
}
答案 1 :(得分:0)
我们可以为此目的定义我们自己的 String
函数,如下所示:
#include <iostream>
using namespace std;
string String(int n, string a){
string s = "";
for(int i = 0; i < n; ++i) s += a;
return s;
}
int main(){
int n = 5;
cout << String(1,"|") + String(n - 1, " |") << endl;
return 0;
}
输出:
| | | | |
请注意这次我们可以将 string
而不是字符传递给我们的 String
函数