Ho un codice con una serie di if che volevo ottimizzare, sostituendo, ad esempio, qualche if con un ciclo, come il for o il while. Ecco il codice:
//assegnare il valore ai caratteri dispari
for (int i=0; i<strlen(dispari); i++) {
if (strncmp(&dispari[i], "0", 1)==0)
val_dispari+=1;
if (strncmp(&dispari[i], "1", 1)==0)
val_dispari+=0;
if (strncmp(&dispari[i], "2", 1)==0)
val_dispari+=5;
if (strncmp(&dispari[i], "3", 1)==0)
val_dispari+=7;
if (strncmp(&dispari[i], "4", 1)==0)
val_dispari+=9;
if (strncmp(&dispari[i], "5", 1)==0)
val_dispari+=13;
if (strncmp(&dispari[i], "6", 1)==0)
val_dispari+=15;
if (strncmp(&dispari[i], "7", 1)==0)
val_dispari+=17;
if (strncmp(&dispari[i], "8", 1)==0)
val_dispari+=19;
if (strncmp(&dispari[i], "9", 1)==0)
val_dispari+=21;
if (strncmp(&dispari[i], "a", 1)==0)
val_dispari+=1;
if (strncmp(&dispari[i], "b", 1)==0)
val_dispari+=0;
if (strncmp(&dispari[i], "c", 1)==0)
val_dispari+=5;
if (strncmp(&dispari[i], "d", 1)==0)
val_dispari+=7;
if (strncmp(&dispari[i], "e", 1)==0)
val_dispari+=9;
if (strncmp(&dispari[i], "f", 1)==0)
val_dispari+=13;
if (strncmp(&dispari[i], "g", 1)==0)
val_dispari+=15;
if (strncmp(&dispari[i], "h", 1)==0)
val_dispari+=17;
if (strncmp(&dispari[i], "i", 1)==0)
val_dispari+=19;
if (strncmp(&dispari[i], "j", 1)==0)
val_dispari+=21;
if (strncmp(&dispari[i], "k", 1)==0)
val_dispari+=2;
if (strncmp(&dispari[i], "l", 1)==0)
val_dispari+=4;
if (strncmp(&dispari[i], "m", 1)==0)
val_dispari+=18;
if (strncmp(&dispari[i], "n", 1)==0)
val_dispari+=20;
if (strncmp(&dispari[i], "o", 1)==0)
val_dispari+=11;
if (strncmp(&dispari[i], "p", 1)==0)
val_dispari+=3;
if (strncmp(&dispari[i], "q", 1)==0)
val_dispari+=6;
if (strncmp(&dispari[i], "r", 1)==0)
val_dispari+=8;
if (strncmp(&dispari[i], "s", 1)==0)
val_dispari+=12;
if (strncmp(&dispari[i], "t", 1)==0)
val_dispari+=14;
if (strncmp(&dispari[i], "u", 1)==0)
val_dispari+=16;
if (strncmp(&dispari[i], "v", 1)==0)
val_dispari+=10;
if (strncmp(&dispari[i], "w", 1)==0)
val_dispari+=22;
if (strncmp(&dispari[i], "x", 1)==0)
val_dispari+=25;
if (strncmp(&dispari[i], "y", 1)==0)
val_dispari+=24;
if (strncmp(&dispari[i], "z", 1)==0)
val_dispari+=23;
if (strncmp(&dispari[i], "\0", 1)==0)
val_dispari+=0;
}
Suggerimenti su come posso fare?