#+title: Curso Básico da Linguagem C
#+subtitle: Exercícios
#+author: Blau Araujo
#+startup: show2levels
#+options: toc:3

* Exercícios da aula 16: Abertura de arquivos para leitura e escrita

- [[../../aulas/16-rwfiles/README.org][Anotações da aula]]
- [[https://youtu.be/B42KIZfivsg][Vídeo]]

** 1. Contando e inserindo linhas

Dado o arquivo =lorem.txt=, abaixo:

#+begin_example
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Curabitur pretium tincidunt lacus. Nulla gravida orci a odio.
Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris.
Integer in mauris eu nibh euismod gravida. Duis ac turpis.
Integer vitae libero ac risus egestas placerat. Praesent eu lacus quam.
Morbi ac felis. Suspendisse ac metus gravida, cursus nunc eu, dictum risus.
#+end_example

Escreva um programa que determine quantas linhas ele tem e escreva esse resultado
no início deste mesmo arquivo segundo o formato abaixo:

#+begin_example
Este arquivo tinha X linhas, agora tem X+2 linhas... 

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Curabitur pretium tincidunt lacus. Nulla gravida orci a odio.
Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris.
Integer in mauris eu nibh euismod gravida. Duis ac turpis.
Integer vitae libero ac risus egestas placerat. Praesent eu lacus quam.
Morbi ac felis. Suspendisse ac metus gravida, cursus nunc eu, dictum risus.
#+end_example

** 2. Desafio: Trocando palavras

Utilizando o mesmo arquivo anterior (na sua forma original), crie um programa que
substitua todas as ocorrências da palavra =gravida= por =>ACHEI<=, imprimindo no terminal
a quantidade de ocorrências e em que linhas e colunas do texto elas foram encontradas.

** 3. Desafio: O código Da Vinci

Utilizando, mais uma vez, o arquivo de exemplo na sua forma original, crie um
programa que reescreva seu conteúdo invertendo a ordem dos caracteres de cada linha,
como se estivéssemos vendo o texto em um espelho.
