Buenas, gracias a todos por sus respuestas, y con respecto a lo que dice malenko, entiendo pero no puedo modificar el código a mi manera porque para mi es mas tedioso hacerlo con el if y else, pero me es mas sencillo hacerlo asi o con el switch y case con menú y la "lección" trata sobre el switch y case.
 
Pero como quiero aprender como dice vangodp "a lo dificil" xD, por eso me detuve aquí a preguntar y pedir ayuda. 
Con respecto a los códigos que me han dado, disculpen mi ignorancia o falta de conocimiento, sería mas o menos así?:    
Código C++:
Ver original- #include <stdio.h> //  Archivo de la biblioteca estándar de Entrada/Salida. 
- #include <math.h> // archivo estandar de la biblioteca de matematicas 
- #include <stdlib.h> // Aritméticas, Números aleatorios; y • Conversión de cadenas.  
- #include <map> 
- int main(int argc, char *argv[]) 
- { 
-   char mensaje[100]; 
-   float Monto, Descuento, TotalPagar; 
-   std::map< std::string, int > colores; 
-    colores["blanco"]=1; 
-    colores["verde"]=2; 
-    colores["amarillo"]=3; 
-    colores["azul"]=4; 
-    colores["rojo"]=5; 
-   printf("Dime el Monto de la Compra:"); 
-   printf("=============================================================\n"); 
-   printf("Dime El Color que Recibiste:"); 
-   printf("=============================================================\n"); 
-   for(-  auto &-  c  :-  mensaje  )-  c  = tolower(-  c  );
 
-   int colorInt = colores[ mensaje ]; 
-   switch ( colorInt )  
-   {   
-     case 1: 
-             TotalPagar = Monto;     
-             printf("Lo sentimos, no obtuvo ningun descuento\n"); 
-             printf("El monto total a pagar es:%f\n",- TotalPagar );
 
-             break;            
-   } 
-   return 0; 
- } 
La verdad en parte a veces me cuesta entender los ejemplos, ya que los debo ver con un programa como tal :(. 
Mil disculpas nuevamente, saludos. 
PD: Vangodp, si eres de Venezuela postúlate xD