C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++でランダムなアルファベット文字列を生成する方法

このチュートリアルでは、C++を使ってランダムなアルファベット文字列を生成するプログラムについて解説します。

ランダム文字列の生成は、パスワードの自動生成、テストデータの作成、IDの発行など、さまざまな場面で活用される基本的なテクニックです。

実装の考え方

基本的なアプローチは非常にシンプルです。まず、アルファベットa〜zを格納した固定サイズの文字配列を用意します。次に、標準ライブラリのrand()関数を使って0〜25の乱数を発生させ、その値をインデックスとして配列から文字を取り出します。この処理を指定した回数だけ繰り返し、文字を連結することでランダムな文字列が完成します。

サンプルコード

#include <bits/stdc++.h>
using namespace std;
const int MAX = 26;

// ランダムなアルファベット文字列を生成する関数
string gen_random(int n){
    char alphabet[MAX] = {
        'a', 'b', 'c', 'd', 'e', 'f', 'g',
        'h', 'i', 'j', 'k', 'l', 'm', 'n',
        'o', 'p', 'q', 'r', 's', 't', 'u',
        'v', 'w', 'x', 'y', 'z'
    };
    string res = "";
    for (int i = 0; i < n; i++)
        res = res + alphabet[rand() % MAX];
    return res;
}

int main(){
    srand(time(NULL));
    int n = 7;
    cout << gen_random(n) << endl;
    return 0;
}

実行結果

gwqrgpa

コードのポイント

1. srand()による乱数の初期化

srand(time(NULL))は、乱数のシード値を現在時刻で初期化する処理です。これを忘れると、プログラムを実行するたびに同じ乱数列が生成されてしまい、毎回同じ文字列が出力されます。実行ごとに異なる結果を得るために必須の処理です。

2. rand() % MAX でインデックスを決定

rand()は非常に大きな範囲の整数を返すため、% 26(剰余演算)を使うことで、0〜25の範囲に収まる値に変換できます。この値を配列のインデックスとして使うことで、a〜zのいずれかの文字をランダムに選択できます。

3. 文字数は自由に変更可能

main関数内の変数nの値を変更すれば、生成される文字列の長さを自由に調整できます。例えばn = 10とすれば10文字のランダム文字列が生成されます。

応用:大文字や数字を含めるには

文字配列alphabetに大文字のA〜Zや数字の0〜9を追加すれば、より多様なランダム文字列を生成できます。パスワード生成などセキュリティが求められる用途では、文字種を増やすことで組み合わせの数が増え、強度が向上します。

このように、C++では数行のコードで簡単にランダムなアルファベット文字列を生成できます。ぜひ自分のプロジェクトでも活用してみてください。

  1. C++でべき等行列を判定するプログラムの作成方法

    行数を r、列数を c とする行列 M[r][c] が与えられ、r = c となる正方行列を考えます。この記事では、与えられた正方行列がべき等行列(アイデンポテント行列)であるかどうかを判定するC++プログラムを解説します。 べき等行列とは 行列 M がべき等行列であるとは、行列 M と自分自身の積が元の行列 M と等しくなること、すなわち M × M = M が成り立つことを指します。 例えば、次の行列を見てください。 この行列を自分自身で掛け合わせても、結果は元の行列とまったく同じになります。したがって、この行列はべき等行列であると言えます。 べき等行列の代表的な例としては、ベクトルを

  2. C++で掛け算の九九(乗算表)を生成するプログラム

    掛け算表(乗算表)は、任意の数に対する掛け算の結果を一覧にまとめたもので、十進法における初等算術の基礎を学ぶために広く使われています。掛け算表は通常、1から10までの積を各行に表示します。例として、4の掛け算表は以下のようになります。4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 4 * 10 = 40指定した数の掛け算表を生成するC++プログラムの例は以下の通りです。プログラム例#include <iostream> using nam