Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adaog0n/42-ft_printf
Developed as part of the 42 school curriculum, this project demonstrates skills in string manipulation, type conversion, and low-level C programming.
https://github.com/adaog0n/42-ft_printf
Last synced: about 2 months ago
JSON representation
Developed as part of the 42 school curriculum, this project demonstrates skills in string manipulation, type conversion, and low-level C programming.
- Host: GitHub
- URL: https://github.com/adaog0n/42-ft_printf
- Owner: AdaoG0n
- Created: 2024-10-29T10:59:56.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-12T21:05:47.000Z (about 2 months ago)
- Last Synced: 2024-11-12T22:19:22.986Z (about 2 months ago)
- Language: C
- Homepage:
- Size: 1.5 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![](https://github.com/AdaoG0n/AdaoG0n/blob/main/assests/animated%20gifs/ft_printf.gif)
Para completar o projeto de recodificação da função `printf()` em `C`, siga os passos abaixo:
![Typing SVG](https://readme-typing-svg.demolab.com?font=Fira+Code&weight=100&size=40&letterSpacing=0px&duration=1000&pause=4000¢er=true&vCenter=true&width=1900&lines=___________________________________________________________________________________________________)### 1. Estrutura do Projeto
Crie a Estrutura de Diretórios:
Um diretório para os arquivos de código (src/).
Um diretório para os cabeçalhos (include/).>[!Note]
> Eu decidi deixar tudo no mesmo diretório, mas é boa prática dividir os arquivos nos diretórios correspondentes.![](https://github.com/AdaoG0n/AdaoG0n/blob/main/assests/bar.png)
### 2. Implementação da Função ft_printf
Prototype: Defina o protótipo da função:
```sh
int ft_printf(const char *format, ...);
```
Conversões Necessárias:
Implemente as seguintes conversões:
`%c:` caractere
`%s:` string
`%p:` ponteiro em formato hexadecimal
`%d:` número decimal
`%i:` inteiro
`%u:` número decimal sem sinal
`%x:` número em hexadecimal (minúsculo)
`%X:` número em hexadecimal (maiúsculo)
`%%:` símbolo de porcentagem![](https://github.com/AdaoG0n/AdaoG0n/blob/main/assests/bar.png)
### 3. Gerenciamento de Argumentos Variáveis
Utilize as funções `va_start`, `va_arg`, e `va_end` para lidar com um número variável de argumentos.
![](https://github.com/AdaoG0n/AdaoG0n/blob/main/assests/bar.png)
### 4. Criação do Makefile
Crie um Makefile com as seguintes regras:
`NAME:` nome do arquivo executável.
`all:` compila todos os arquivos.
`clean:` remove arquivos temporários.
`fclean:` remove todos os arquivos gerados.
`re:` recompila tudo.Exemplo básico de Makefile:
```bash
makefile
NAME = libftprintf.aSRC = src/ft_printf.c src/utils.c
OBJ = $(SRC:.c=.o)all: $(NAME)
$(NAME): $(OBJ)
ar rcs $@ $^clean:
rm -f $(OBJ)fclean: clean
rm -f $(NAME)re: fclean all
```![](https://github.com/AdaoG0n/AdaoG0n/blob/main/assests/bar.png)
### 5. Testes
Crie programas de teste para verificar a funcionalidade da sua implementação.
Teste todos os casos de uso, incluindo os casos limites.![](https://github.com/AdaoG0n/AdaoG0n/blob/main/assests/bar.png)
### 6. Submissão
Faça commit do seu código no repositório Git.
Verifique se todos os arquivos estão nomeados corretamente e se não há erros de norma.![](https://github.com/AdaoG0n/AdaoG0n/blob/main/assests/bar.png)
>[!Tip]
>Mantenha seu código bem estruturado e documentado.
>Revise a documentação sobre funções variádicas em C para melhor compreensão.![](https://github.com/AdaoG0n/AdaoG0n/blob/main/assests/bar.png)
### Earned skills
![](https://github.com/AdaoG0n/AdaoG0n/blob/main/assests/bar.png)
### Links úteis
- [ ] [francinette](https://github.com/xicodomingues/francinette)
- [ ] [printf_tester](https://github.com/Tripouille/printfTester)![](https://github.com/AdaoG0n/AdaoG0n/blob/main/assests/animated%20gifs/madeby.gif)
###### Projeto desenvolvido por: [Adão Gonçalves](https://github.com/AdaoG0n)![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fhits.dwyl.com%2FAdaoG0n%2F42-FT_printf.json&style=flat-square&labelColor=black&color=blue)