Ecco il codice corretto, tabulato e commentato.
L'unica differenza è che non ho usato un file esterno, e quindi ho usato un prototipo per la funzione.
Codice PHP:
#include <stdio.h>
#include <stdlib.h>
//Ti ho messo anche <string.h> per strlen()
#include <string.h>
//extern char *inverti(char *);
//prototipo
char *inverti(char *str);
void main()
{
//Contiene la stringa originale
char stringa[30];
//Richiede di immettere una stringa
printf("\n\nIMMETTI UNA STRINGA: ");
//Input della stringa
scanf("%s", stringa);
//Altro errore:
//Io lo ho corretto usando strcpy()
strcpy(stringa,inverti(stringa));
//Output della stringa
//Altro errore: ti sei dimenticata l'argomento della stringa
printf("stringa invertita --> %s ", stringa);
getchar();
}
char *inverti(char *str)
{
//contatore
int i;
//puntatore al risultato della funzione
char *str_out;
int len, len_2;
//Imposta len sulla lunghezza della stringa
len = strlen(str);
//Imposta len_2 su len -1, perchè gli array partono da [0]
//...il tuo errore ;)
len_2= len - 1;
//Alloca uno spazio sufficente per contenere la stringa invertita
// + 1 per comprendere il '\0' finale
str_out=(char*)malloc(len+1);
//Ciclo di inversione
for(i=0; i<len; i++, len_2--)
str_out[i] = str[len_2];
//Termina la stringa con uno '\0'
str_out[i] = '\0';
//restituisce la stringa invertita
return str_out;
}