函数错误中的数组字符串

时间:2016-04-07 03:44:25

标签: c++ arrays string

所以,我需要为我的作业挽救这个大型程序,但我无法理解我在函数中获得此字符串数组的错误。
at = stockSymbol ="""" 我一直收到错误 '错误:值类型" const char *"不能分配给类型" std :: string *"
的实体 我包括了字符串的定义和功能。任何人对于发生了什么以及如何解决这个问题都有任何想法?

int menu()

{
int actents = 0;

int opt = 0;

string stockSymbol[MAXENTS];

double stockShares[MAXENTS];

double stockPrice[MAXENTS];

int opt;

string opts;

void resetPortfolio(string stockSymbol[], double stockShares[], double stockPrice[], int & actents)

{
    // code logic to set all entries of the stock symbol array to ""
    stockSymbol = "\"\"";
    // code logic to set all entries of the other arrays to 0
    stockShares = 0;
    stockPrice = 0;
    // set the number of actual entries in the arrays (actents) to 0
    actents = 0;
    return;
}

2 个答案:

答案 0 :(得分:1)

stockSymbolstockSharesstockPrice都是指向数组第一个元素的指针。您不能只指定它们来设置元素的值。相反,您需要遍历数组并设置每个元素的值。

void resetPortfolio(string stockSymbol[], double stockShares[], double stockPrice[], int & actents)
{
    for (int i = 0; i < actents; ++i) {
        // code logic to set all entries of the stock symbol array to ""
        stockSymbol[i] = "";
        // code logic to set all entries of the other arrays to 0
        stockShares[i] = 0;
        stockPrice[i] = 0;
    }
    // set the number of actual entries in the arrays (actents) to 0
    actents = 0;
}

您发布的代码还有其他问题。 menu()永远不会关闭,您实际上永远不会致电resetPortfolio()

答案 1 :(得分:0)

您的功能menu未关闭。

string stockSymbol[MAXENTS];

double stockShares[MAXENTS];

double stockPrice[MAXENTS];

这些应该在menu内部还是外部?

""""表示字符串""。如果你一起写2个字符串,则意味着字符串的连接。

使用值

设置填充数组
for(var i=0; i<MAXENTS; i++)
    stockSymbol[i]="\"\"";
for(var i=0; i<MAXENTS; i++)
    stockShares[i]=0;
for(var i=0; i<MAXENTS; i++)
    stockPrice[i]=0;