Qualche giorno fa avevo scritto, per gioco, una frase che iniziava dall’ultima parola. Come al solito però, prima di fare questi giochi stupidi penso “come potrebbe risolvere questo problema il computer?”. Invertire tre parole di una frase è molto semplice, invertire testi lunghi – a mano – inizia a diventare qualcosa di oneroso in termini di tempo.
Il problema si risolve in maniera molto semplice con un paio di funzioni. Per amore della pulizia non ho voluto usare alcun ciclo (potevo contare le parole e salvarle in un’altra variabile partendo dall’ultima). In PHP però esiste array_reverse, una funzione che accetta in ingresso un array e lo ordina in maniera opposta.
Così, in poche righe, ho trasformato la stringa in un array, l’ho ribaltata e l’ho ricomposta. 🙂
// Codice PHP
$frase = "Questa stringa verrà ribaltata!";
$i = explode(' ', $frase);
$reverse = array_reverse($i);
$risultato = implode($reverse,' ');
echo $risultato;
// $risultato = ribaltata! verrà stringa Questa
Semplice, facile ed indolore. Anzi: indolore. ed facile, Semplice 🙂
Emanuele
ahahahh ero sicuro che non l’avessi fatto a mano :))
però pensavo a qualche scriptino in bash, non php 🙂
Neanche i post li scrivo a mano. Ho scritto anni fa un generatore di post filosofici random. Neanche questo commento è scritto a mano.
Io non esisto neanche. 😛
Ciao,
Emanuele
Un bot *_* :Q_____________
Colpo di scena, vero? 😛
Ciao,
Emanuele
lo sapresti scriere in C…. ad esempio
se scrivo
reverse ciao casa gatto
deve apparirmi
gatto casa ciao
pls risp…
Esistono decine di modi per risolvere il problema in C. Uno che mi viene in mente al volo è usando una matrice. Ogni volta che – scorrendo la stringa – incontri uno spazio, incrementi il numero di riga e continui la scansione. Alla fine rileggi le righe con un ciclo partendo dall’ultima “riempita”.
Ciao,
Emanuele