#include<unistd.h>

void ft_putchar(char c)
{
write(1, &c, 1);
}


int main ()
{
ft_putchar('b');
}

 

J’ai créé la fonction ft_putchar(char c) pour afficher un caractère en utilisant la fonction write.
Pour utiliser la fonction write, j’ai dû inclure l’en-tête #include <unistd.h>, qui signifie Unix standard.
Dans l’appel à write, le premier argument 1 correspond à la sortie standard (stdout).
Pour le deuxième argument, j’ai mis &c (et non pas simplement c) car la fonction write attend l’adresse en mémoire de la donnée à écrire. Ici, &c signifie « l’adresse du caractère c ».
Enfin, pour afficher un seul caractère, j’ai mis 1 comme troisième argument de write, ce qui signifie 1 octet.

 

#include <unistd.h>

void ft_print_alphabet(void)
{
for(char a ='a'; a<= 'z'; a++)
{
write(1, &a, 1);
}
}

int main()
{
ft_print_alphabet();
}

 

J’ai créé la fonction void ft_print_alphabet(void)
pour afficher l’alphabet en minuscules dans l’ordre croissant, à partir de la lettre 'a'.
J’ai utilisé une boucle for avec char a = 'a', qui commence à 'a' et s’incrémente jusqu’à 'z', en augmentant de 1 à chaque itération.
J’ai utilisé la fonction write pour afficher toutes les lettres de l’alphabet.

 

#include <unistd.h>

void ft_print_reverse_alphabet(void)
{
for(char a ='z'; a>= 'a'; a--)
{
write(1, &a, 1);
}
}

int main()
{
ft_print_reverse_alphabet();
}

 

J’ai créé la fonction void ft_print_reverse_alphabet(void)
pour afficher l’alphabet en minuscules dans l’ordre décroissant, à partir de la lettre 'z'.
J’ai utilisé une boucle for avec char a = 'z', qui commence à 'z' et décrémente jusqu’à 'a', en diminuant de 1 à chaque itération.
J’ai utilisé la fonction write pour afficher toutes les lettres de l’alphabet dans l’ordre inverse.

 

#include <unistd.h>

void ft_print_numbers(void)
{
for(char a ='0'; a<= '9'; a++)
{
write(1, &a, 1);
}
}

int main()
{
ft_print_numbers();
}

 

J’ai créé la fonction ft_print_numbers
pour afficher les chiffres de 0 à 9 sur une seule ligne dans l’ordre croissant.
Pour cela, j’ai utilisé une boucle for avec char a, qui commence à '0' et s’incrémente jusqu’à '9'.
Ainsi, tous les chiffres apparaissent sur une seule ligne dans l’ordre croissant.

 

#include <unistd.h>

void ft_is_negative(int n) {

if (n < 0)

write(1, "N", 1);

else

write(1, "P", 1);
}

int main() {
ft_is_negative(3);
}

 

J’ai utilisé la fonction ft_is_negative, qui affiche N si l’entier passé en paramètre est négatif, et P si l’entier est positif ou égal à 0.
Pour cela, j’ai utilisé une structure conditionnelle if pour gérer les deux cas.
Dans le premier cas, si le nombre est inférieur à 0, j’affiche N avec la fonction write.
Dans le deuxième cas, si le nombre est positif ou égal à 0, j’affiche P également avec write.
Ainsi, la fonction affiche correctement N ou P selon la valeur de l’entier.

 

#include <unistd.h>

void ft_print_comb(void) {

for(char i='0'; i<='7'; i++)
{
for(char j=i+1; j<='8'; j++)
{
for (char m=j+1; m<='9'; m++)
{
write(1, &i,1);
write(1, &j,1);
write(1, &m,1);
if (i!=7 && j!=8 && m!=9)
{
write(1, ", ", 2);
}
}
}
}
 
}

int main() {
ft_print_comb();
}

 

J’ai créé la fonction ft_print_comb, de type void, qui affiche toutes les combinaisons possibles de trois chiffres différents dans l’ordre croissant.

Pour cela, j’ai utilisé trois boucles for imbriquées avec les variables i, j et m :

  • i représente le premier chiffre et va de '0' à '7'.
  • j représente le deuxième chiffre et commence à i + 1, jusqu’à '8'.
  • m représente le troisième chiffre et commence à j + 1, jusqu’à '9'.

Dans chaque itération, j’affiche les chiffres i, j et m avec la fonction write.
Pour séparer les combinaisons par une virgule et un espace, j’utilise une condition : si i != '7', j != '8' et m != '9', alors j’écris , avec write(1, ", ", 2) (2 octets).
Ainsi, la dernière combinaison (7 8 9) n’est pas suivie d’une virgule ni d’un espace.

 

#include <unistd.h>

void ft_print_comb2(void) {
for (int i = 00; i <= 98; i++) {
for (int j = i + 1; j <= 99; j++) {
char x, y, z, t;
x = (i / 10) + '0';
y = (i % 10) +'0';
z = (j / 10) +'0';
t = (j % 10) + '0';

write(1, &x, 1);
write(1, &y, 1);
write(1, " ",1);
write(1, &z, 1);
write(1, &t, 1);
if (!(i == 98 && j == 99)) {
write(1, ", ", 2);
}
}
}
}

int main () {
ft_print_comb2();
}

 

J’ai créé la fonction ft_print_comb2, de type void, qui affiche toutes les combinaisons possibles de deux nombres à deux chiffres différents dans l’ordre croissant.

Pour cela, j’ai utilisé deux boucles for imbriquées :

  • i va de 0 à 98 et représente le premier nombre.
  • j va de i + 1 à 99 et représente le deuxième nombre.

Pour chaque combinaison, j’ai séparé les chiffres de chaque nombre :

  • x = chiffre des dizaines de i → (i / 10) + '0'
  • y = chiffre des unités de i → (i % 10) + '0'
  • z = chiffre des dizaines de j → (j / 10) + '0'
  • t = chiffre des unités de j → (j % 10) + '0'

Remarque importante : on ajoute '0' à chaque chiffre pour le convertir en caractère ASCII (아스키), car la fonction write attend des caractères et non des nombres. Sans + '0', write afficherait le code ASCII correspondant au nombre entier, ce qui ne donnerait pas le chiffre souhaité.

Ensuite, j’affiche les chiffres x, y, un espace, puis z et t avec la fonction write.

Pour séparer les combinaisons par une virgule et un espace, j’utilise la condition :
if (!(i == 98 && j == 99))
Ainsi, la dernière combinaison (98 99) n’est pas suivie d’une virgule ni d’un espace.
“Si i n’est pas égal à 98 et j n’est pas égal à 99”

! → “ne … pas” (부정)

== → “égal à” (같다)

&& → “et” (그리고)

즉 의미는:

“i가 98이 아니거나, j가 99가 아닌 경우”

여기까지만 하자..... 

#include <unistd.h>

void ft_putchar(char c)
{
write(1, &c, 1);
}

void ft_putnbr(int nb)
{
long n;

n = nb;
if (n < 0)
{
ft_putchar('-');
n = -n;
}
if (n > 9)
{
ft_putnbr(n / 10);
n %= 10;
}
ft_putchar(n + '0');
}

int main ()
{
ft_putnbr(-10);
}

Ce programme affiche un nombre entier, même négatif, en utilisant une fonction récursive.

  1. ft_putchar : affiche un caractère sur la sortie standard.
  2. ft_putnbr (fonction récursive) :
    • Si le nombre est négatif, on affiche '-' et on rend le nombre positif.
    • Si le nombre a plusieurs chiffres, la fonction s’appelle elle-même pour afficher les chiffres de gauche à droite.
    • On affiche ensuite le dernier chiffre avec ft_putchar(n + '0').
  3. main : appelle ft_putnbr(-10), ce qui affiche :
    Remarque : on utilise long pour éviter un dépassement si le nombre est le minimum d’un int.

    네이버 블로그에 다른 풀이법 있음 



'라피씬' 카테고리의 다른 글

한국어 설정하는 법  (0) 2025.09.07
쉘 01  (2) 2025.09.07

+ Recent posts