Does Contrast10 equal "10%" and so on? I don't quite get why you have duplicate comparisons and duplicate definitions. If the set of possible values is fixed, couldn't you just use a sequence of strcmp() calls to compare against hard-coded literals in an if() else if () structure? There are other, more general ways to parse that set of strings but just doing a string compare against each possible value is the simplest method. To save RAM you could put the literals in progmem, but you are only talking about a couple thirty-odd bytes here - are you really that tight on memory?