PDA

Visualizza la versione completa : [C] Rovesciare una stringa ricorsivamente


peperino
07-04-2009, 18:17
Aiuto vorrei sapere una soluzione ricorsiva al problema di scrivere una stringa alla rovescio!!
Grazie!

Stoicenko
07-04-2009, 18:47
Linguaggio?

se č c o c++ ti conviene immagazzinare una stringa in un array di char

la funzione ricorsiva scorrerą l'array (di cui sai le dimensioni) e inizierą a scivere solo quando č giunta al trermine

Emulator ®
07-04-2009, 20:23
Prova una cosa del genere:


char* Rovescia(char* str)
{
if (*str)
{
Rovescia(str+1);

strncat(str, str, 1);
}

return str+(strlen(str)/2);
}


PS: Non ho testato il codice, cmq dovresti passargli la stringa e la ritorna alla rovescia ;)

scu
07-04-2009, 20:56
void inverti_stringa(char *stringa,int dimensione)
{
char scambia=stringa[0];
stringa[0]=stringa[dimensione-1];
stringa[dimensione-1]=scambia;

if(dimensione-2>1)
inverti_stringa(&stringa[1],dimensione-2);
}

MacApp
08-04-2009, 00:52
Puoi farlo in innumerevoli linguaggi di programmazione ed in innumerevoli modi.
Eccotene uno in PHP 5.2.9


<?php

function EchoReverseStringRecursive (&$theString, $theLength){
assert ('true == isset ($theString)');
assert ('true == isset ($theLength)');
if ($theLength > 0){
echo $theString [$theLength - 1];
EchoReverseStringRecursive ($theString, $theLength - 1);
}
}

function main (){
$aString = "Hello World!";
EchoReverseStringRecursive ($aString, strlen ($aString));
echo "\n";
}
main ();
?>


che in output produce:


$ php -f main.php
!dlroW olleH

;-)

alka
08-04-2009, 11:38
Il linguaggio va sempre indicato anche nel titolo, come da Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887).

Qui l'ho aggiunto io, sperando che sia corretto.

Loading