Non potendo utilizzare la libreria string.h e il metodo strlen si
provvede a creare una funzione lung che restituisca la lunghezza della stringa.
Dovendo inoltre invertire la stringa si implementa una procedura inverti che
acquisita la stringa, per indirizzo tramite il puntatore, la restituisca invertita; questa procedura utilizza una procedura di scambio.
#include <stdio.h> #include <stdlib.h> void scambia(char *a, char *b) { char tmp = *a; *a = *b; *b = tmp; } int lung(char *s) { int i=0; while(s[i]!='\0'){ i++; } return i; } void inverti(char *s1) { int i=0; for(i=0; i<(lung(s1)/2); i++) { scambia(&s1[i], &s1[lung(s1)-i-1]); } } int main(int argc, char** argv) { // questa riga serve solo a chi usa il compilatore cygwin con Windows. setvbuf(stdout, 0, _IONBF, 0); char str[10]; printf("introdurre una stringa "); scanf("%s", str); printf("stringa %s letta, lunga %d caratteri\n", str, lung(str)); inverti(str); printf("stringa invertita %s\n", str); return (EXIT_SUCCESS); }