文字列への参照であるパラメータを持つメソッドがあります。この参照された文字列を別の文字列と比較したいメソッドでは、この文字列はトランザクションと呼ばれるオブジェクトの一部であり、トランザクションの配列があります。元の文字列は両方ともstd::stringsです。==演算子を使用してみましたが、両方の文字列が同じであっても、これはtrueを返さないようです。たぶん、文字列のアドレスを比較します。
これが私が今持っているものです:
int Analyser::numSharesBoughtOf(string& stockSymbol)
{
// Your code
int Total=0;
for (int tranNum(0); tranNum<numOfTranactions; tranNum++)
{
if (stockSymbol == Transactions[tranNum].stockSymbol)
{
Total = Total + Transactions[tranNum].numShares;
}
}
if (Total > 0)
{
return Total;
}
else
{
return 0;
}
}
トランザクションは、トランザクションの配列の開始へのポインタでもあります。これにより、違いが生じる場合があります。編集:返信ありがとうございます。銘柄記号に間違った名前を入力していたことがわかりました...この方法は、john.pavanによって投稿された.compare回答を使用した場合と同じように機能します。Visual Studioのデバッグコンソールを使用していたので、これまで気づかなかった方法がわかりません。実際には株式仲買人のコードの記述を担当していないのは良いことだと思います。