VS 2017告诉我我正在尝试转换变量,但我没有
VS 2017 is telling me I am trying to convert variables but I am not
我正在尝试设置一个函数,该函数需要几个数组才能从类中的私有部分构建一副纸牌。该函数仍在同一个类中,但它位于公共部分中。但是,Visual Studio调试器告诉我,没有合适的函数将字符串转换为字符。我的代码中没有任何字符变量,也没有尝试转换它。两个数组都是字符串。
它最初是一个 2d 数组进入一个 1d 数组,但我将其更改为 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;
}
};
您正在尝试使用 cards[j]
访问字符串中的字符cards
因为它是一个字符串。
要访问数组中的特定卡,您需要更改函数的签名:
void builddeck(string cards[])
相关文章:
- 如何在保持其值的同时将 c++ 无符号字符变量转换为 char 变量
- 是否可以将已经初始化的变量转换为 void*?
- C++字符串类如何将一个变量转换为另一个变量?
- std::chrono::time_point 从变量转换时编译器错误
- std::变量转换构造函数行为
- 尝试将字符串变量转换为布尔值会导致 "true" 和 "false" 都等于 0
- C++将字符变量转换为字符串变量将返回 ASCII 值
- 将大端序的 32 位变量转换为小端序
- 在代码优化过程中,C++11编译器是否会在可能的情况下将局部变量转换为右值
- 有符号浮点变量转换为无符号DWORD
- 将初始变量转换为已声明的变量
- 将C++字符串变量转换为long
- 如何将DWORD或char*类型的变量转换为LPCWSTR
- 如何在 c++ 中将包含时间的字符串变量转换为time_t类型
- C++变量转换为模板参数
- 将 [char] 变量转换为 [int],然后再转换回 [char]
- 如何将 int 变量转换为 ASCII 单词
- 将c++类的私有变量转换为公有变量
- 将变量转换为const
- 如何将方法返回的接口变量转换为对象