Écrivez un programme qui ajoute ou supprime des espaces pour bien formater le code. Règles à quoi le code devrait ressembler lorsque vous avez terminé:
- Aucune ligne ne doit contenir plus d'un
{
et}
. - Un
{
devrait toujours être la dernière chose sur une ligne. - Un
}
devrait toujours être la seule chose sur une ligne (en plus des espaces qui le précèdent). - La quantité d'espaces devant chaque ligne doit être un multiple fixe du nombre d'imbrication actuel. (Vous pouvez utiliser la quantité d'indentation que vous souhaitez, tant qu'elle ne change pas.)
- Aucun espace ne doit être inséré ou supprimé qui ne contribue pas à satisfaire à l'une de ces règles.
Le nombre d'imbrication pour la première ligne est 0. Le nombre d'imbrication de toute autre ligne est le nombre d'imbrication de la ligne précédente, plus un si la ligne précédente contient un {
, moins un si la ligne actuelle contient un }
.
{
et }
les littéraux de chaîne et les commentaires ne comptent pas dans les règles ci-dessus. Un littéral de chaîne est du texte entre guillemets simples ou doubles, où les guillemets simples ou doubles avec un nombre impair de barres obliques inverses immédiatement avant ne sont pas interprétés comme la fin du littéral de chaîne. Un commentaire est un texte placé entre /*
et */
, ou un texte allant de //
la fin de la ligne. Dans une ligne, plusieurs marqueurs de début de commentaire, seul le premier compte. Les commentaires ne sont pas analysés à l'intérieur des littéraux de chaîne.
Exemples
main() {printf("Hello!"); // I don't care about the world...
}
becomes:
main() {
printf("Hello!"); // I don't care about the world...
}
int main(){
puts("a");
puts("b");
}
becomes:
int main(){
puts("a");
puts("b");
}
main()
{ printf("{"); /* }
} */
printf("}//}"); ///*
}
becomes:
main()
{
printf("{"); /* }
} */
printf("}//}"); ///*
}
int test[] = {1, 2, 3};
becomes:
int test[] = {
1, 2, 3
}
;