簡體   English   中英

從字符串函數返回值

[英]Return value from string function

我有一個包含20個單詞的字符串數組。 我做了一個函數,該函數從數組中獲取1個隨機單詞。 但我想知道如何從數組中返回該單詞。 現在我正在使用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.
//}

}

random返回string 您還只需要播種一次數字生成器。 由於您只想從數組中獲得1個隨機詞,因此不需要for循環。

string random(string names[]){
    int randNum = 0;
    randNum = rand() % 20 + 1;
    return names[randNum];
}

然后,在main函數中,將string變量分配給random函數的返回值。

int main() {
    srand( time(NULL) ); // seed number generator once
    char a;
    string names[] = {"vergs", "rokas", "metrs", "zebra", "uguns", "tiesa", "bumba",
                       "kakls", "kalns", "skola", "siers", "svari", "lelle", "cimdi",
                       "saule", "parks", "svece", "diegs", "migla", "virve"};

    string randomWord = random(names);

    cout<<"VARDU MINESANAS SPELE"<<endl;
    cin>>a;

    return 0;
}

在您的問題以及上一個答案中,您都無法訪問names數組:

int randNum = rand() % 20 + 1;
return names[randNum];

您從不訪問名稱[0],而是在尋址名稱[20]時到達數組后面。

另外,在main()函數的開頭,僅應一次調用srand(time(NULL))。

我對字符串不是很熟悉,但是您應該能夠將random()聲明為字符串函數。

例如:隨機字符串(字符串名稱[]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM