创建具有指定字符数的字符串

sir*_*isp 34 c c++ string variables

有没有办法在初始化时用c ++创建一个说256个字符的字符串?

我的部分工作要求我"1.创建一个256个字符的字符串.重复使用你的名字."

除了使用循环之外,我不太清楚如何做到这一点,但我觉得有一种更简单的方法.

Xeo*_*Xeo 86

看一下构造函数的引用basic_string,可以看出没有简单的方法可以重复一个完整的字符串.对于单个字符,您可以使用(2)如下:

std::string s(5, 'a'); // s == "aaaaa"
Run Code Online (Sandbox Code Playgroud)

要生成字符串重复,您需要一些解决方法.例如,通过简单地填充字符串std::generate(使用算法很有趣),可以更容易地进行构建.

#include <string>
#include <algorithm>

// ...

std::string pattern("Xeo ");
auto pattern_it = pattern.begin();
std::string s(256, '\0');
std::generate(s.begin(), s.end(),
    [&]() -> char { 
      if(pattern_it == pattern.end())
        pattern_it = pattern.begin();
      return *pattern_it++; // return current value and increment
    });
Run Code Online (Sandbox Code Playgroud)

实例.