C++で文字列を指定回数だけ繰り返し連結する方法
文字列を指定された回数だけ連結するプログラムは、変数 n の値に基づいて、文字列の連結処理を n 回実行します。
その結果として、元の文字列が指定した回数分繰り返された文字列が得られます。
例
入力文字列: "I love Tutorials point" n = 5
出力
I love Tutorials pointI love Tutorials pointI love Tutorials pointI love Tutorials point I love Tutorials point
出力結果を見れば、この関数が何を行っているのかは一目瞭然です。入力された文字列が、指定した回数だけ繰り返されて連結されています。
サンプルコード
#include <iostream>
#include <string>
using namespace std;
string repeat(string s, int n) {
string s1 = s;
for (int i=1; i<n;i++)
s += s1; // 文字列を連結
return s;
}
// ドライバーコード
int main() {
string s = "I love tutorials point";
int n = 4;
string s1 = s;
for (int i=1; i<n;i++)
s += s1;
cout << s << endl;;
return 0;
}
出力
I love tutorials pointI love tutorials pointI love tutorials pointI love tutorials point
コードの解説
このプログラムの仕組みは非常にシンプルです。まず、元の文字列 s を別の変数 s1 にコピーして保存しておきます。次に、for ループを使って n-1 回の繰り返し処理を行い、そのたびに保存しておいた元の文字列 s1 を s に追加(連結)していきます。
ループが 1 から始まって n 未満まで実行されるため、合計で n-1 回の連結が行われ、結果的に元の文字列が n 回繰り返された文字列が完成します。
なお、C++ では + 演算子や += 演算子を使うことで、string 型の文字列を直感的に連結できます。この手法は、文字列の繰り返しパターンを生成したい場合や、区切り文字を挟みながら文字列を組み立てたい場合など、さまざまな場面で応用できます。
-
C++で文字列の順列の総数を求めるプログラムの作成方法
文字列に含まれる文字は、さまざまな順序で並べ替えることができます。本記事では、与えられた文字列から作成できる順列の数を求める方法を解説します。たとえば「abc」という3文字の文字列の場合、並べ方は 3! = 6 通りあります。つまり、n 文字の文字列であれば、最大で n! 通りの並べ方が存在します。しかし、「aab」のように同じ文字が複数回含まれている場合、単純に 6 通りにはなりません。「aab」の全パターンを書き出してみると、次のようになります。abaaabbaabaaaababaこのうち、(1番目と6番目)、(2番目と5番目)、(3番目と4番目) のペアはそれぞれ同一の並び方です。したが
-
C++でstd::stringとint(整数)を連結する方法【stringstream・std::to_string】
C++では、文字列(std::string)と整数型(int)のデータをそのまま連結することはできません。連結を行うには、まず整数を文字列に変換する必要があります。本記事では、stringstreamを使った変換方法を中心に、具体的な手順とサンプルコードをわかりやすく解説します。例えば、文字列「str」と数値「10」を連結すると、結果として「str10」という一つの文字列が得られます。入力:文字列 str と 数値 10 出力:連結された文字列 str10処理の流れ(アルゴリズム)ステップ1:文字列と数値を受け取る ステップ2:数値を文字列に変換する ステップ3:両者を連結する ステップ4:終