1)Problema, da una stringa estrarre i caratteri pari e quelli dispari:
-Sembra tu ci sia riuscito quindi hai un vettore di caratteri pari e uno dispari.
2)I Caratteri del vettore pari corrispondono ad un valore numerico
- analizziamo i valori:
- '0' = 0
- '1' = 1
- ...
- 'A' = 0
- 'B' = 1
- ...
- Bene ma il carattere '0' quanto vale ? bho ma sarà sicuramente un numero e se io scrivo
- "numero = carattere - '0'" otterrò l'esatto valore che mi serve, chiariamo meglio:
- il carattere '0' vale 48 il carattere '1' vale 49, ..., come vedi sono consecutivi e quindi se io nel vettori pari ho il carattere '0' allora avrò "numero = 48 - 48" che darà zero proprio come vogliamo!
Ora ecco una funzione che da il valore pari in base al carattere:
int topari(char c)
{
if ( c >= '0' && c <= '9' )
return c - '0';
return c - 'A';
}
ora se passi il carattere pari ti ritorna il valore che corrisponde a quel carattere, l'if serve per controllare se è un carattere numerico o alphanumerico serve solo per sottrarre il valore corretto dato che 'A' e '0' non sono allineati come vogliamo noi.
Ora per il dispari è diverso i valori sono circa casuali e allora conviene usare un bello switch e ti passa la paura, altrimenti devi lavorare o con le mappe o impazzire con vettori che ricercano in altri vettori, troppo per te ma prova a scrivere la funzione che ritorni il valore dispari dal carattere passato.