Escriba un programa que agregue o elimine espacios en blanco para formatear bien el código. Reglas sobre cómo debería verse el código cuando haya terminado:
- Ninguna línea debe contener más de uno de
{
y}
. - A
{
siempre debe ser lo último en una línea. - A
}
siempre debe ser lo único en una línea (además del espacio en blanco que viene antes). - La cantidad de espacios en blanco delante de cada línea debe ser un múltiplo fijo del recuento de anidamiento actual. (Puede usar cualquier cantidad de sangría que desee, siempre que no cambie).
- No se debe insertar o eliminar ningún espacio en blanco que no contribuya a satisfacer una de estas reglas.
El recuento de anidamiento para la primera línea es 0. El recuento de anidamiento de cualquier otra línea es el recuento de anidamiento de la línea anterior, más uno si la línea anterior contiene a {
, menos uno si la línea actual contiene a }
.
{
y }
dentro de los literales de cadena y los comentarios no cuentan en las reglas anteriores. Un literal de cadena es texto encerrado entre comillas simples o dobles, donde las comillas simples o dobles con un número impar de barras invertidas inmediatamente antes de ellas no se interpretan como el final del literal de cadena. Un comentario es texto encerrado en /*
y */
, o texto que va desde //
el final de la línea. En una línea de marcadores de inicio de comentarios múltiples, solo cuenta el primero. Los comentarios no se analizan dentro de los literales de cadena.
Ejemplos
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
}
;