所以我在代码行中得到了上面提到的错误: "女性[count_wc] =(临时);" [错误]无法转换' std :: string {aka std :: basic_string}'去#char;'在赋值 - C ++
位于被调用函数内部。
同样在实际调用函数的位置发现了另一个错误。错误在 " get_comp_women(women,MAX_W,array,ROW);"是 [错误]无法转换'(std :: string *)(& women)'来自' std :: string * {aka std :: basic_string *}' to' std :: string {aka std :: basic_string}'
const int MAX_W = 18;
const int MAX_T = 18;
const int MAX_E = 14;
const int ROW = 89;
using namespace std;
struct data
{
string name;
string event;
};
void get_comp_women(string women, int MAX_W, data array[], int ROW)
{
int count_wc = 0;
int count_wn = 0;
int event_occ = 0;
string temp;
temp = (array[0].name);
event_occ = (ROW + MAX_W);
for (int i = 1; i < event_occ; i++)
{
if (temp == array[count_wn].name)
{
women[count_wc] = (temp);
count_wn++;
}
else
{
temp = array[count_wn].name;
count_wc++;
}
}
int main()
{
string women[MAX_W];
data array[ROW];
get_comp_women(women, MAX_W, array, ROW);
}
答案 0 :(得分:3)
您的函数接受women
作为std::string
,而您需要一个数组,因此,函数women[count_wc]
内部意味着“字符串中的字符”,而不是“字符串数组中的字符串” “
women[count_wc] = (temp);
\____________/ \____/
^ ^-----std::string
^--- one character in the string
您需要更改功能签名,使其接受std::string[]
而不是std::string
:
void get_comp_women(string women[], int MAX_W, data array[], int ROW)
你得到的第二个错误是非常明显的,并且意味着这一点(尝试将数组传递给等待字符串的函数)。
答案 1 :(得分:0)
void get_comp_women(string women, int MAX_W, data array[], int ROW)
应该成为
void get_comp_women(string women[], int MAX_W, data array[], int ROW)
函数的调用和它内部的逻辑都需要一个数组。