Molto spesso ci capita di dover invertire una stringa, per esercizio oppure per ne dobbiamo leggere un file al contrario.

20130209-021540.jpg

Nei moderni linguaggi di programmazione abbiamo una funzione apposita che fa tutto il lavoro per noi.
Andiamo però a vedere in ANSI C come si fa.

Ecco la funzione reverse che rigirerà la stringa ed il relativo main per vedere come richiamarla.

Ad esempio: CIAO diventerà OAIC

#include <stdio.h>
#include <string.h>

void reverse(char * stringa)
{
    size_t i,j;
    for(i=0, j=strlen(stringa)-1;i<strlen(stringa)/2;i++, j--)
    {
        char temp=stringa[i];
        stringa[i]=stringa[j];
        stringa[j]=temp;
    }
}

int main(void)
{
    char stringa[]="una stringa di testo di una certa lunghezza";
    reverse(stringa);
printf("%s", stringa);
    return 0;
}

Questo è tutto. Davvero semplice.