ciao ragazzi,vorrei sapere se esiste una funzione che mi permette di invertire una stringa,esempio:
ciao diventa oaic
Ho cercato ma non riesco a trovarla.
Grazie
ciao ragazzi,vorrei sapere se esiste una funzione che mi permette di invertire una stringa,esempio:
ciao diventa oaic
Ho cercato ma non riesco a trovarla.
Grazie
"Let him who has understanding reckon the number of the beast, for it is a human number.
Its number is rw-rw-rw-."
codice:void reverse(char array[]) { int i, x = strlen(array)-1; int tmp; for(i = 0; i < x / 2; i++) { tmp = array[i]; array[i] = array[x]; array[x] = tmp; x--; } }
Ma quindi l'algoritmo devo comunque farlo io,giusto? cioè non è che se scrivo:
reverse(array) allora automaticamente mi inverte l'array.....
Certo, se la funzione non appartiene alla libreria standard devi implementarla tu, oppure usi un esempio già pronto in rete.Ma quindi l'algoritmo devo comunque farlo io,giusto? cioè non è che se scrivo:
reverse(array) allora automaticamente mi inverte l'array.....
@simo_85: non puoi usare x sia come indice di scorrimento "all'indietro" che come variabile contenente la lunghezza della stringa... devi ricorrere ad un indice j diverso inizializzato a x, tra l'altro x va impostato a strlen(array) non strlen(array) - 1.
every day above ground is a good one
Hai ragione YuYevonQuesta è la mia originale..
Non so perchè l'ho cambiata per comodita (era una impressione) prima di postarla.. Infatti provandola mi resi conto..codice:void reverse(char array[], int N) { int i, x = N-1; int tmp; for(i=0; i<N/2; i++) { tmp = array[i]; array[i] = array[x]; array[x] = tmp; x--; } } int main(int argc, char *argv[]) { char array[] = "I am an array"; printf("%s\n", array); reverse(array, strlen(array)); printf("\n**Reversed Array:\n"); printf("%s\n", array); return 0; }
In effetti sì. Funziona lo stesso perché int è comunque un tipo intero ed è più grande di char.
Amaro C++, il gusto pieno dell'undefined behavior.
ok,comunque grazie dell'aiuto...questo è il risultato :
codice:void reverse(ordinamento** str,int cont){ int x,y,lun; char car; for(x=0;x<cont;x++){ lun = strlen(str[x]->parola)-1 ; for(y=0;y<(strlen(str[x]->parola))/2;y++){ car = str[x]->parola[y]; str[x]->parola[y] = str[x]->parola[lun]; str[x]->parola[lun] = car; lun--; } } }![]()