codice:#include <string.h> #include <stdio.h> void trim(char *stringa) { // Riceve il puntaore ad una stringa e restituisce il puntatore alla stringa mod char *p; // Dichiara il puntatore all'ultimo carattere della stringa in input /* Imposta p all'ultimo elemento prima del carattere di fine stringa di stringa */ p = stringa + strlen(stringa) -1; /* Finchč il valore puntato da p č uno spazio e l'indirizzo contenuto in p non coincide con l'inizio stringa */ while((*p == ' ') && (p != stringa) ) // <<< Mancava una parentesi tonda ! ) // Questo era l'errore >>>*(p+1)<<< non decrementava il puntatore p ! // Ed il prog si bloccava... *(p--) = '\0'; } // int main() { char s[25] = "stringa "; int count=0; while(s[count] != '\0') count++; printf("La stringa s contiene la parola: \"%s\" ed e' formata da %d caratteri\n\n", s, count); printf("CHIAMO LA FUNZIONE trim() ED ELIMINO GLI SPAZI A DESTRA\n\n"); // Non č possibile passare un stringa per valore* quindi... trim(s); count=0; while(s[count] != '\0') count++; printf("Ora la stringa s contiene la parola: \"%s\" ed e' formata da %d caratteri\n\n", s, count); return 0; }

Rispondi quotando