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!