Как сделать запись слова в ячейку массива string
возникла задача записывать слово word в рандомный массив slovo1 slovo2 или slovo3 типа string. Но столкнулся с такой проблемой, что, если все слова будут идти по порядку в один массив, то все работает, а ,если массивы будут чередоваться, то некоторые ячейки массивов будут пропускать и запись не будет осуществляться по порядку. Как можно записывать переменную word в свою ячейку массивов слов по порядку,попробовал через switch, но столкнулся с проблемой, описанной выше.
Может следует использовать вместо switch другой метод? Подскажите,пожалуйста как правильней будет поступить?
#include <iostream>
#include <time.h>
#include <stdio.h>
#include <string>
#include "alphabet.h"
#define size 13
using namespace std;
string Alphabet() {
string alphabet;
cout << "Введите 6 букв вашего алфавита: " << endl; cin >> alphabet;
return alphabet;
}
int main(int argc, char* argv[])
{
setlocale(0, "RU");
srand(time(NULL));
string alphabet= Alphabet();
string slovo1[size], slovo2[size], slovo3[size];
int wordsCount = 9 + rand() % 4; // Случайное количество слов
for (int i = 0; i < wordsCount; ++i)
{
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[i] = word;
break;
case 2:
slovo2[i] = word;
break;
case 3:
slovo3[i] = word;
break;
default:
break;
}
cout << word << endl;
}
return 0;
}
Ответы (1 шт):
Поддерживайте три индекса - для каждого массива - и будет вам счастье :)
int wordsCount = 9 + rand() % 4; // Случайное количество слов
int i1 = 0, i2 = 0, i3 = 0;
for (int i = 0; i < wordsCount; ++i)
{
....
case 1:
slovo1[i1++] = word;
break;
case 2:
slovo2[i2++] = word;
break;
case 3:
slovo3[i3++] = word;
break;
Еще варианты - матрица слов (массив из трех массивов), тогда можно обойтись без switch, а еще лучше - векторы строк. Тогда автоматически решается проблема, что в каждый массив могут быть записаны разное количество слов...