Newsgroup: it.comp.lang.c++
Titolo: Stringhe - Help

Salve,
è realizzabile del codice che permetta, di disporre gli elementi di
una stringa in ordine lessicografico (es.: trasformare CASA in AACS) o di
trasformarli in una serie di numeri "di posizione assoluta" (es.: 1 per A, 2
per B, ecc.) o "relativa" (es.: CASA = 19, 16, 5 - cioè, secondo il modulo
21, la distanza tra la prima lettera e la seconda, tra la seconda e la
terza, ecc.)?
Grazie
K
__________________________________________________________________ "Kurt
Fleißig" ICQ#: 158716837 Current ICQ status: + More ways to contact me
__________________________________________________________________

 terza, ecc.)?
Si.

 tra la seconda e la terza, ecc.)?
Certo che lo è...

 wrote in message
av7m9r$595$1...@lacerta.tiscalinet.it...

Dove ve ne sono, in rete, degli esempi perfettamente funzionanti?
grazie
K

terza, ecc.)?
Per il primo punto, gli elementi della string puoi metterli in una lista ed usare la funzione sort(),
che appunto ti fa un ordinamento lessicografico, per la seconda mi par vuoi una semplice 
sostituzione, quindi ti fai due stringhe una con l'alfabeto, la seconda con i numeri che gli vuoi 
attribuire e richiami in un ciclo la funzione find() per farti restituire la posizione della lettera alla quale 
corrisponde il numero da te scelto e il codice è presto fatto... per la terza ipotesi mi vien in mente di
trasformare i caratteri in numeri ascii, alchè devi far solo operazioni di addizione o sottrazione per ottenere
la distanza...
Ciao

 Dove ve ne sono, in rete, degli esempi perfettamente funzionanti?
Ciao, non è che in rete trovi sempre il programma già fatto che realizza
quel che pensi di fare, purtroppo.
Il C++ come qualsiasi altro linguaggio può darti gli strumenti più o meno
idonei per realizzarlo.
Devi essere tu a programmartelo qualora non esista gia un programma con
simili caratteristiche.
Dato che sei su un gruppo che si occupa di programmazione in C++ suppongo
che tu voglia realizzartelo, proprio con questo linguaggio.
In questo caso è richiesta una buona conoscenza del linguaggio standard C++
(nel caso ci sono ottimi tutorial e libri anche in rete, sebbene un buon
libro in libreria è sempre consigliato).
Quello che possiamo darti è uno spunto o qualche idea su come realizzarlo,
mi sembra che Perseo ti abbia già dato una dritta, che io quì riprendo.
Ogni stringa è in pratica un vettore di caratteri, prova a fare un sort
ascendente per ogni vettore di caratteri che hai e avrai la risposta alla
prima tua domanda.
Per la seconda questione per ogni stringa crei un vettore dove vai a
leggerti il valore assoluto per ogni lettera della stringa corrente da una
tabella di conversione (es. int tab[] = { 1,2, ... };) ma devi accedera alla
tabella tenendo conto che l'indice per la lettera in questione c è il codice
ASCII associato alla lettera meno il codice ASCII della prima lettera
(controlla le maiuscole o le minuscole).
Il valore che leggi dalla tabella lo inserisci nel vettore, ripeti per ogni
stringa e il gioco è fatto.
Nel caso invece di valore relativo anziché leggere da una tabella te lo
calcoli con il metodo che tu sai (io non conosco questo metodo che dici...
basta che lo sai tu e che te lo programmi, hai menzionato la distanza tra i
caratteri, bene puoi accedere ai caratteri della stringa sempre tenendo
conto che lo puoi vedere come un array di caratteri).
Quindi mettiti al lavoro, poi se hai dubbi o incontri errori la gente di
questo NG è pronta ad aiutarti!
Ciao.