Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- /* Let's assume we got a C99-compliant compiler */
- #include <stdbool.h>
- #define MAXLENGH 20000
- bool caractere_de_debut(char c) {
- return (c == '\t') || (c == ' ');
- }
- int accolades(char chaine[]) {
- int cpt = 0;
- int i;
- for(i=0; chaine[i] != '\0'; i++)
- if(chaine[i] == '{')
- cpt++;
- else if(chaine[i] == '}')
- cpt--;
- return cpt;
- }
- void enleverpremiersespaces(char chaine[]) {
- int i = 0;
- int j;
- int lengh = strlen(chaine) + 1;
- while(caractere_de_debut(chaine[i]))
- i++;
- for(j=i; j <= lengh; j++)
- chaine[j-i] = chaine[j];
- }
- void ecritpremiersespaces(char chaine[], int m) {
- char chaine2[MAXLENGH];
- int i;
- int max = strlen(chaine);
- enleverpremiersespaces(chaine);
- strcpy(chaine2, chaine);
- if(MAXLENGH>=(max+m)) {
- for(i=0; i<m; i++)
- chaine[i] = ' ';
- chaine[m] = '\0';
- strcat(chaine,chaine2);
- }
- }
- int main() {
- int nbraclds = 0;
- char chaine[MAXLENGH];
- while(fgets(chaine, MAXLENGH, stdin) != NULL) {
- if(accolades(chaine) > 0) {
- ecritpremiersespaces(chaine, (nbraclds*4));
- nbraclds += accolades(chaine);
- } else {
- nbraclds += accolades(chaine);
- ecritpremiersespaces(chaine, (nbraclds*4));
- }
- printf("%s", chaine);
- }
- printf("\n");
- }
Add Comment
Please, Sign In to add comment