Я пытаюсь настроить функцию, которая использует несколько массивов для создания колоды карт из частного раздела в классе.Функция все еще находится в том же классе, но в открытом разделе.Однако отладчик Visual Studio говорит мне, что нет подходящей функции для преобразования строки в символ.В моем коде нет переменных типа char, и я не пытаюсь его преобразовать.Оба массива являются строками.
Первоначально это был 2-мерный массив, входящий в 1-мерный массив, но я изменил его на 2 отдельных массива, чтобы посмотреть, работает ли он, но он все еще говорит мне, что я пытаюсь преобразовать.
class Cards {
private:
string deckcontents[13]{"A","2","3","4","5","6","7","8","9","10","J","K","Q"};
string cardshape[4]{ "H", "S", "D", "C" };
string deck[52]{};
public:
int generaterandcardnum() {
int num1 = NULL;
for (int i = 0; i < 13; i++) {
num1 = rand() % 10;
}
return num1;
}
int generaterandcardsuit() {
int num2 = NULL;
for (int i = 0; i < 4; i++) {
num2 = rand() % 10;
}
return num2;
}
void builddeck(string cards)
{
int cardnum = generaterandcardnum();
int cardsuit = generaterandcardsuit();
string card = deckcontents[cardnum] + cardshape[cardsuit];
int j = 0;
for (int i = 0; i < 4; i++) {
for (int k = 0; k < 13; k++) {
//This is where the problem lies
cards[j] = card;
//.cpp(58): error C2440: '=': cannot convert from 'std::string' to 'char'
j = j + 1;
}
}
return;
}
};