Inverti parola

di il
2 risposte

Inverti parola

Volevo risolvere questo esercizio:

Si scriva la funzione void reverse(string &s) che data una
stringa inverta la stringa su se stessa senza creare una nuova
copia.

Ho pensato al seguente codice:

#include <stdlib.h>
#include <iostream>
#include <math.h>

using namespace std;

void reverse(string &s)
{
char v;

int c=0;
for(int i=0;s!='\0';i++)
c=c+1;

for(int i=0;s<=c;i++)
{v=s;
s=s[c-i];
s[c-i]=v;
}
}

main()
{
string s;
cout<<"Capovolgi stinga"<<endl<<endl;
cout<<"Scrivi parola: "<<endl<<endl;
getline(cin,s);
cout<<endl<<endl;

reverse(s);

cout<<s<<endl<<endl;

system("pause");
}


Ma mi restituisce la parola che immetto, senza invertirla, why? Grazie!

2 Risposte

  • Re: Inverti parola

    Fatti due domande il perché non funziona...
    void reverse(string &s)
    {
    char v;
    for(int i=0;i<=s.length()/2;i++)
    {v=s[i];
    s[i]=s[c-i];
    s[c-i]=v;
    } 
    }  
  • Re: Inverti parola

    Grazie, si!
Devi accedere o registrarti per scrivere nel forum
2 risposte