Как записать случайные слова в 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;
}