2

文字列に係数を掛けて、繰り返しシーケンスを持つ文字列を作成する簡単な方法はありますか? たとえば、python で取得することができ3*'ab'ますababab

C++でこのようなことはできますか? 文字列コンストラクターは char のみを受け取ります。

ループカウンターに応じて一連の文字列をつなぎ合わせる方法を探しています。

4

1 に答える 1

5

いつでもオーバーロードできます*

このようなもの :

std::string operator*(std::string const &str, size_t times)
{
    std::string res;  
    res.reserve(times * str.size());
    for (size_t i=0; i<times; ++i)
        res += str;
    return res;
}

std::string s="ab";
std::cout<<s*3<<std::endl;

「別の for ループに入る必要がないことを望んでいました。– Dochevsky 」の編集

あなたが使用することができstd::fill_nますstd::stringstream

#include<algorithm>
#include<sstream>
//...
std::stringstream ss;
std::fill_n( std::ostream_iterator< const char* >( ss ),
           3, "ab" ); //Replace ss with std::cout, to output on standard output
std::string str =ss.str();
std::cout<<str;
于 2013-10-19T18:42:26.057 に答える