/printf

Our printf project

Primary LanguageC

0x11. C - printf team project

Mandatory Tasks

0. I'm not going anywhere. You can print that wherever you want to. I'm here and I'm a Spur for life

Write a function that produces output according to a format.

1. Education is when you read the fine print. Experience is what you get if you don't

Handle the following conversion specifiers: d and i

  • You don’t have to handle the flag characters
  • You don’t have to handle field width
  • You don’t have to handle precision
  • You don’t have to handle the length modifiers

Advanced Tasks

2. With a face like mine, I do better in print

Handle the following custom conversion specifiers:

  • b: the unsigned int argument is converted to binary

3. What one has not experienced, one will never understand in print

Handle the following conversion specifiers:

  • u
  • o
  • x
  • X
  • You don’t have to handle the flag characters
  • You don’t have to handle field width
  • You don’t have to handle precision
  • You don’t have to handle the length modifiers

4. Nothing in fine print is ever good news

Use a local buffer of 1024 chars in order to call write as little as possible.

  • Use a local buffer of 1024 chars in order to call write as little as possible.

5. My weakness is wearing too much leopard print

Handle the following custom conversion specifier:

  • S : prints the string.
  • Non printable characters (0 < ASCII value < 32 or >= 127) are printed this way: \x, followed by the ASCII code value in hexadecimal (upper case - always 2 characters)

6. How is the world ruled and led to war? Diplomats lie to journalists and believe t hese lies when they see them in print

Handle the following conversion specifier: p.

  • You don’t have to handle the flag characters
  • You don’t have to handle field width
  • You don’t have to handle precision
  • You don’t have to handle the length modifiers

7. The big print gives and the small print takes away

Handle the following flag characters for non-custom conversion specifiers:

  • '+'
  • space
  • '#'

8. Sarcasm is lost in print

Handle the following length modifiers for non-custom conversion specifiers:

  • l
  • h
  • Conversion specifiers to handle: d, i, u, o, x, X

9. Print some money and give it to us for the rain forests

Handle the field width for non-custom conversion specifiers.

10. The negative is the equivalent of the composer's score, and the print the perfor mance

Handle the precision for non-custom conversion specifiers.

11. It's depressing when you're still around and your albums are out of print

Handle the 0 flag character for non-custom conversion specifiers.

12. Every time that I wanted to give up, if I saw an interesting textile, print what ever, suddenly I would see a collection

Handle the - flag character for non-custom conversion specifiers.

13. Print is the sharpest and the strongest weapon of our party

Handle the following custom conversion specifier:

- r : prints the reversed string

14. The flood of print has turned reading into a process of gulping rather than savoring

Handle the following custom conversion specifier:

  • R: prints the rot13'ed string

15. * All the above options work well together.

Compilation:

All files will be compiled with gcc 4.8.4 using the flags: -Wall -Werror -Wextra -pedantic
gcc -Wall -Werror -Wextra -pedantic *.c

Betty coding style:

All files are written in C and follows the Betty coding style for Holberton School. For more detail, check this page: Betty style documentation

Authorized functions and macros

  • write (man 2 write)

  • malloc (man 3 malloc)

  • free (man 3 free)

  • va_start (man 3 va_start)

  • va_end (man 3 va_end)

  • va_copy (man 3 va_copy)

  • va_arg (man 3 va_arg)

  • _putchar(char c)

    Function prototypes (main.h)

  • int printf_pointer(va_list val);
  • int printf_hex_aux(unsigned long int num);
  • int printf_HEX_aux(unsigned int num);
  • int printf_exclusive_string(va_list val);
  • int printf_HEX(va_list val);
  • int printf_hex(va_list val);
  • int printf_oct(va_list val);
  • int printf_unsigned(va_list args);
  • int printf_bin(va_list val);
  • int printf_srev(va_list args);
  • int printf_rot13(va_list args);
  • int printf_int(va_list args);
  • int printf_dec(va_list args);
  • int _strlen(char *s);
  • int *_strcpy(char *dest, char *src);
  • int _strlenc(const char *s);
  • int rev_string(char *s);
  • int _strlenc(const char *s);
  • int printf_37(void);
  • int printf_char(va_list val);
  • int printf_string(va_list val);
  • int _putchar(char c);
  • int _printf(const char *format, ...);

Contributors are:

  • Meriem Boussaid
  • Ikram Kawthar Khezour