C++ 打印字符串 n 次,中间有空格?

时间:2021-01-10 10:25:17

标签: c++

有没有办法在 c++ 上打印一个字符串 n 次。 例如

int main(){
    int n = 5;
    cout << string(n, '|') << endl;
    return 0;
}

输出是|||||,但想要的输出是| | | | | 由于 string() 不能使用空格“”,如果我想在它们之间添加空格,我该如何处理?

2 个答案:

答案 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 函数

相关问题