Как записать случайные слова в 3 разных массива и подправить код программы

Есть задача.Нужно собрать, используя 3 разных слов из 3 разных массивов предложение.Никак не могу додуматься как грамотней сделать.Слова я уже записал в 3 массива слов (slovo1,slovo2,slovo3) с помощью switch ,но, как мне уже подсказали, лучше использовать вектор строки или матрицы. Собственно сам вопрос, можете показать примерный алгоритм через матрицы или же вектор строки,чтобы я мог случайно созданные слова распределять по массивам и сделать из них предложение.Пока мой код выглядит так:

//main.cpp
#include <iostream>
#include <time.h>
#include <stdio.h>
#include <string>
#include "Alphabet.h"
#include "Slovar.h"
#define size 20
using namespace std;

int main(int argc, char* argv[])
{
    setlocale(0, "RU");
    srand(time(NULL));

    string alphabet = Alphabet(); //переменная ,которая получает результат функции алфавита
    string slovo1[size], slovo2[size], slovo3[size];  //массивы рандомных слов

    Slovar(alphabet, slovo1, slovo2, slovo3);

    return 0;
}

//Alphabet.h
#pragma once
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;

string Alphabet() {  // функция получения алфавита с клавы и вывода на экрана,введенного алфавита
    string alphabet;
    cout << "Введите буквы вашего алфавита: " << endl;  cin >> alphabet;
    system("cls");
    cout << "Ваш алфавит: ";
    for (int i = 0; i < alphabet.length(); i++)
    {
        if (i != alphabet.length() - 1)
            cout << alphabet[i] << ",";
        else
            cout << alphabet[i] << endl;
    }

    return alphabet;
}

//Slovar.h
#pragma once
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;


void Slovar(string alphabet, string* slovo1, string* slovo2, string* slovo3)
{
    int i1 = 0, i2 = 0, i3 = 0, i4 = 0;
    int wordsCount = rand() % 9 + 4; //кол-во слов
    for (int i = 0; i < wordsCount; ++i)  //цикл задачи рандом слов из рандом букв и распределения рандомно слов по 4 массивам
    {

        int wordLength = 5 + rand() % 10;  // Случайная длина слова
        string word;  

        for (int j = 0; j < wordLength; ++j)  //цикл получения рандом слова из алфавита
        {
            word += alphabet[rand() % alphabet.length()];  //готовые слова
        }


        int randomCategory = rand() % 3 + 1;// рандом переменная для свитча

        switch (randomCategory) //рандом распределение по массивам
        {
        case 1:
            slovo1[i1++] = word;

            break;
        case 2:
            slovo2[i2++] = word;

            break;
        case 3:
            slovo3[i3++] = word;
            break;
        default:
            break;
        }

        // cout << word << endl;
    }
    return;
}

Ответы (0 шт):