PDA

View Full Version : [C++]Invertire elementi


MaxGuevara
28-01-2006, 23:23
Come posso facre per invertire degli elementi di un array con una funzione?
Mi spiego:

dato l'array:

char e[10]="ciao";

come faccio,con una funzione,per farlo diventare:

e[10]="oaic"

Ufo13
29-01-2006, 00:27
semplice... hai SIZE dell'array


for(int i=0; i<SIZE; i++)
{
char temporary = e[i]
e[i] = e[SIZE-i];
e[SIZE-1] = temporary;
}


Ho omesso il codice per la funzione che è ovvio :p

Fenomeno85
29-01-2006, 11:03
mmm però devi ricordarti che size è la metà del numero di elementi fino /0 escluso ;)


~§~ Sempre E Solo Lei ~§~

Qu@ker
29-01-2006, 11:08
#include <iostream>
#include <algorithm>
#include <cstring>

char *inverti(char *a)
{
int size = strlen(a), limit = size / 2;

for (int i = 0; i < limit; ++i)
std::swap(a[i], a[size-i-1]);

return a;
}

int main(void)
{
char array[] = "ciao";

std::cout << inverti(array) << std::endl;
}

Ufo13
29-01-2006, 11:14
mmm però devi ricordarti che size è la metà del numero di elementi fino /0 escluso ;)


~§~ Sempre E Solo Lei ~§~

heheh vedi che succede a postare di notte :D

Fenomeno85
29-01-2006, 12:22
heheh vedi che succede a postare di notte :D

si ma sto notando che di notte comunque escono le idee migliori per noi programmatori :D


~§~ Sempre E Solo Lei ~§~