string cents_to_string(int cents)
{
string *tmp;
if(!cents) return "no money";
if(cents/100)
tmp=({cents/100 +" dollar"+(cents/100==1?"":"s")});
else
tmp=({});
if(cents % 100)
tmp+=({cents%100+" cent"+(cents%100==1?"":"s") });
return implode_nicely(tmp);
}
int string_to_cents(string desc)
{
int tmp,tmp2;
desc=desc-","-"and";
while(sscanf(desc," %s",desc));
if(desc=="no money" || desc=="") return 0;
if(sscanf(desc+" ","%d dollar %s",tmp,desc) ||
sscanf(desc+" ","%d dollars %s",tmp,desc))
{
tmp2=string_to_cents(desc);
if(tmp2==-1) return -1;
return tmp*100+tmp2;
}
if(sscanf(desc+" ","%d cent %s",tmp,desc) ||
sscanf(desc+" ","%d cents %s",tmp,desc))
{
tmp2=string_to_cents(desc);
if(tmp2==-1) return -1;
return tmp+tmp2;
}
return -1;
}