Would you please run through this code and provide your comments?
void quote_container::allocate(string *i_string, string *i_value){
string temp_name = *i_string;
double temp_value;
// Convert the input string to upper case.
stringToUpper(temp_name);
if (temp_name =="OPEN"){
temp_value = atof( (*i_value).c_str() );
open = (float)temp_value;
}
else if (temp_name =="DAYHIGH") {
temp_value = atof( (*i_value).c_str() );
high = (float)temp_value;
}
else if (temp_name =="DAYLOW") {
temp_value = atof( (*i_value).c_str() );
low = (float)temp_value;
}
else if (temp_name =="LOW52") {
temp_value = atof( (*i_value).c_str() );
year_low = (float)temp_value;
}
else if (temp_name =="HIGH52") {
temp_value = atof( (*i_value).c_str() );
year_high = (float)temp_value;
}
else if (temp_name =="PRICEBANDLOWER") {
temp_value = atof( (*i_value).c_str() );
lower_price_band = (float)temp_value;
}
else if (temp_name =="PRICEBANDUPPER") {
temp_value = atof( (*i_value).c_str() );
upper_price_band = (float)temp_value;
}
else if (temp_name =="TOTALBUYQUANTITY"){
temp_value = atof( (*i_value).c_str() );
tbq = temp_value;
}
else if (temp_name =="TOTALSELLQUANTITY") {
temp_value = atof( (*i_value).c_str() );
tsq = temp_value;
}
else if (temp_name == "BUYQUANTITY5" || temp_name == "BUYQUANTITY4" || temp_name == "BUYQUANTITY3"||
temp_name == "BUYQUANTITY2"|| temp_name == "BUYQUANTITY1") {
temp_value = atof( (*i_value).c_str() );
tbq2 = tbq2 + temp_value;
}
else if (temp_name == "SELLQUANTITY5" || temp_name == "SELLQUANTITY4" || temp_name == "SELLQUANTITY3"||
temp_name == "SELLQUANTITY2" || temp_name == "SELLQUANTITY1") {
temp_value = atof( (*i_value).c_str() );
tsq2 = (float)tsq2 + temp_value;
}
else if (temp_name == "BUYPRICE1" || temp_name == "BUYPRICE2" || temp_name == "BUYPRICE3"||
temp_name == "BUYPRICE4" || temp_name == "BUYPRICE5") {
temp_value = atof( (*i_value).c_str() );
avg_buy_price = avg_buy_price + (float)temp_value ;
}
else if (temp_name == "SELLPRICE5" || temp_name == "SELLPRICE4" || temp_name == "SELLPRICE3"||
temp_name == "SELLPRICE2" || temp_name == "SELLPRICE1") {
temp_value = atof( (*i_value).c_str() );
avg_sell_price = tsq2 + (float)temp_value;
}
else if (temp_name == "FACEVALUE") {
temp_value = atof( (*i_value).c_str() );
face_value = (float)temp_value;
}
else if (temp_name == "PREVIOUSCLOSE") {
temp_value = atof( (*i_value).c_str() );
prev_close = (float)temp_value;
}
else if (temp_name == "LASTPRICE") {
temp_value = atof( (*i_value).c_str() );
last_price = (float)temp_value;
}
else if (temp_name == "TOTALTRADEDVOLUME") {
temp_value = atof( (*i_value).c_str() );
ttv = (float)temp_value;
}
else
cout <<"\n\t Ignoring --"<<temp_name<<"---"<<*i_value;
}
Also
void quote_container::stringToUpper(string &s)
{
for(unsigned int l = 0; l < s.length(); l++)
s[l] = toupper(s[l]);
}
Could the above code be improved in any way?