#include #include #include #define L 100 // Entree -> rien // Sortie -> tableau de caracteres rempli void lire( char phrase[ L ] ) { int i; char c = '-'; for( i = 0; i < L - 1 && c != '\n'; i++ ) { c = getchar(); phrase[i] = c; } phrase[ i ] = '\0'; } int longueur( char phrase[ L ] ) { int i; for( i = 0 ; phrase[i] != '\0'; i++ ) { } return i; } void afficher( char phrase[ L ] ) { int i; for( i = 0; i < L; i++ ) { printf( "%2d - \"%c\"\n", i, phrase[i] ); } } int compter_occ( char phrase[ L ], char cherche ) { int i, no = 0; for( i = 0 ; phrase[i] != '\0'; i++ ) { if( phrase[i] == cherche ) { no++; } } return no; } void enlever_espaces( char entree[ L ], char sortie[ L ] ) { int l, i, j; l = longueur( entree ); j = 0; while( entree[j] == ' ' || entree[j] == '\t' ) { j++; } for( i = j; i < l ; i++ ) { sortie[ i - j ] = entree[i]; } sortie[ i - j ] = '\0'; } char lire_fichier( char phrase[ L ], FILE *f ) { int i; char c = '-'; for( i = 0; i < L - 1 && c != '\n' && c != EOF; i++ ) { c = getc( f ); phrase[i] = c; } phrase[ i ] = '\0'; return c; } int main(void) { char p[ L ], dernier; FILE *fichier, *resultat; char p_ss[ L ]; int i, nb_diese = 0; int nb_retraits = 0; fichier = fopen( "exo-noindent.c", "r" ); resultat = fopen( "resultat.c", "w" ); do{ dernier = lire_fichier( p, fichier ); if( dernier != EOF ) { enlever_espaces( p, p_ss ); nb_retraits = nb_retraits - compter_occ( p, '}' ); for( i = 0; i < nb_retraits; i++ ){ fprintf( resultat, " " ); } fprintf( resultat, "%s", p_ss ); nb_retraits = nb_retraits + compter_occ( p, '{' ); } } while( dernier != EOF ); fclose( fichier ); fclose( resultat ); return 0; }