Всім відомо про switch/case/default стейтмент. І всі знають, що в С/C++ агрументами case може бути все, що завгодно (точніше, майже все що завгодно :)) крім строк. От тому і починає сішник-початківець писати кілометрові
if(...)
else if (....)
else if (.....)
говорячи відверто — на сі по іншому не можна (структура мови така). але на щастя, кілометри if-else компактніше виглядають, записані через тринарний оператор:
#include <stdio.h>
int main (int argc, char *argv[]){
char * str = argv[1];
int result =
0 == strcmp(str, "pine")?1:
0 == strcmp(str, "apple")?2:
0 == strcmp(str, "tree")?3:
0;
printf("%s : %i\r\n",str,result);
}