У меня есть массив строк, содержащий 20 слов. Я создал функцию, которая принимает одно случайное слово из массива. Но я хочу знать, как я могу вернуть это слово из массива. Прямо сейчас я использую функцию void, я использовал тип char, но он не будет работать. Немного помочь здесь? Нужно сделать игру с угадыванием слов.Возвращаемое значение из строковой функции
КОД:
#include <iostream>
#include <time.h>
#include <cstdlib>
#include <stdlib.h>
#include <algorithm>///lai izmantotu random shuffle funckiju
#include <string>
using namespace std;
void random(string names[]);
int main() {
char a;
string names[] = {"vergs", "rokas", "metrs", "zebra", "uguns", "tiesa", "bumba",
"kakls", "kalns", "skola", "siers", "svari", "lelle", "cimdi",
"saule", "parks", "svece", "diegs", "migla", "virve"};
random(names);
cout<<"VARDU MINESANAS SPELE"<<endl;
cin>>a;
return 0;
}
void random(string names[]){
int randNum;
for (int i = 0; i < 20; i++) { /// makes this program iterate 20 times; giving you 20 random names.
srand(time(NULL)); /// seed for the random number generator.
randNum = rand() % 20 + 1; /// gets a random number between 1, and 20.
names[i] = names[randNum];
}
//for (int i = 0; i < 1; i++) {
//cout << names[i] << endl; /// outputs one name.
//}
}
Я не вижу, как код, который вы опубликовали, относится к тому, что вы просите (что еще не так ясно, TBH). – StoryTeller
Либо используйте 'vector' или сообщите функции, сколько элементов в массиве. Не вставляйте в код функцию hard-code 20. Это касательно вашего вопроса, но соответствующие общие советы. Убедитесь, что функции знают, как большой массив, с которым они имеют дело. –
Как насчет возврата строки? 'std :: string random (std :: string names []);' – Galik