Ciao a tutti....
Come dice il titolo mi è stato richiesto un programma che deve invertire una stringa, senza però utilizzare all'interno della funzione "inverti" stringhe di appoggio in cui copiare la stringa.
Per lo svolgimento del programma non si dovrebbe utilizzare alcuna istruzione della libreria <string.h>....
Non so se possa essere utile a qualcuno, comunque vi posto il codice di una funzione inverti che salva in s2 (stringa) s1 letta al contrario(stringa digitata dall'utente).
Grazie a tutti!!Ciao!
void inverti (char *s1, char *s2) //vengono passati due puntatori a stringhe
{
int k=0; //indice della lunghezza della stringa 1, purtoppo non si possono utilizzare le funzioni di <sting.h>
char *p1 = s1;
char *p2= s2;
for (;*p1!='\0';p1++) //Calcola la lunghezza di s1
k++;
p1--; //Essendo che p1, che punta a s1 in realtà, è stato incrementato fino alla fine adesso "vale" '\0', decerementandolo si torna all' ultimo suo valore prima del char nullo.
for (int j=0;j<k;j++, p1--, p2++) //Scorro il for k volte, decrementando ad ogni iterazione p1 e aumentando p2, copiando ad ogni passaggio all'interno di *p2 ----->*p1
{
*p2=*p1;
}
*p2='\0'; //aggiungo il carattere nullo rendendo p2 una stringa valida
}
Scusate ma non son bravo nei forum e non so come postare il codice in altro modo...scusatemi ancora