- 주제 : 헤더파일, 구조체
ex00
c
#ifndef FT_H
# define FT_H
void ft_putchar(char c);
void ft_swap(int *a, int *b);
void ft_putstr(char *str);
int ft_strlen(char *str);
int ft_strcmp(char *s1, char *s2);
#endif
ex01
c
#ifndef FT_BOOLEAN_H
# define FT_BOOLEAN_H
# include <unistd.h>
typedef int t_bool;
# define EVEN(nbr) ( !(nbr % 2) )
# define TRUE 1
# define FALSE 0
# define SUCCESS 0
# define EVEN_MSG "I have an even number of arguments.\n"
# define ODD_MSG "I have an odd number of arguments.\n"
#endif
ex02
c
#ifndef FT_ABS_H
# define ABS(value) (value * ((value > 0) - (value < 0)))
#endif
ex03
c
#ifndef FT_POINT_H
# define FT_POINT_H
typedef struct s_point
{
int x;
int y;
} t_point;
#endif
ex04
c
#include <stdlib.h>
#include "ft_stock_str.h"
int ft_strlen(char *str)
{
int x;
x = 0;
while (str[x] != '\0')
x++;
return (x);
}
char *ft_strdup(char *src)
{
char *arr;
int size;
int i;
size = ft_strlen(src);
arr = (char *)malloc(sizeof(char) * (size + 1));
i = 0;
while (src[i] != '\0')
{
arr[i] = src[i];
i++;
}
arr[i] = '\0';
return (arr);
}
struct s_stock_str *ft_strs_to_tab(int ac, char **av)
{
int i;
struct s_stock_str *list;
list = malloc((ac + 1) * sizeof(struct s_stock_str));
i = 0;
while (i < ac)
{
list[i].size = ft_strlen(av[i]);
list[i].str = av[i];
list[i].copy = ft_strdup(av[i]);
i++;
}
list[i].str = NULL;
return (list);
}
ex05
c
#include <unistd.h>
#include "ft_stock_str.h"
void ft_putstr(char *str)
{
int n;
n = 0;
while (str[n] != '\0')
write(1, &str[n++], 1);
}
void ft_putnbr(int nb)
{
char c;
if (nb == -2147483648)
{
write (1, "-2147483648", 11);
return ;
}
else if (nb < 0)
{
write(1, "-", 1);
ft_putnbr(nb * (-1));
}
else if (nb < 10)
{
c = '0' + nb;
write(1, &c, 1);
return ;
}
else
{
ft_putnbr(nb / 10);
ft_putnbr(nb % 10);
}
}
void ft_show_tab(struct s_stock_str *par)
{
int i;
i = 0;
while (par[i].str != NULL)
{
ft_putstr(par[i].str);
write(1, "\n", 1);
ft_putnbr(par[i].size);
write(1, "\n", 1);
ft_putstr(par[i].copy);
write(1, "\n", 1);
i++;
}
}