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.
- Prototype:
int _printf(const char *format, ...);
- Returns: the number of characters printed (excluding the null byte used to end output to strings)
- write output to stdout, the standard output stream-
format
is a character string. The format string is composed of zero or more directives. Seeman 3 printf
for more detail. You need to handle the following conversion specifiers:c
s
%
- You don’t have to reproduce the buffer handling of the C library printf function
- 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
Solution: printf
- Handle the following conversion specifiers:
d
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
Solution: printf
Write a function that prints strings, followed by a new line.
- Handle the following custom conversion specifiers:
- b: the unsigned int argument is converted to binary
Solution: printf
- 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
Solution: printf
- Use a local buffer of 1024 chars in order to call
write
as little as possible.
Solution: printf
- 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)
Solution: printf
6. How is the world ruled and led to war? Diplomats lie to journalists and believe these 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
Solution: printf
- Handle the following flag characters for non-custom conversion specifiers:
+
space
#
Solution: printf
- Handle the following length modifiers for non-custom conversion specifiers:
l
h
Conversion specifiers to handle:d
,i
,u
,o
,x
,X
Solution: printf
- Handle the field width for non-custom conversion specifiers.
Solution: printf
- Handle the precision for non-custom conversion specifiers.
Solution: printf
- Handle the
0
flag character for non-custom conversion specifiers.
Solution: printf
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.
Solution: printf
- Handle the following custom conversion specifier:
r
: prints the reversed string
Solution: printf
- Handle the following custom conversion specifier:
R
: prints the rot13'ed string
Solution: printf
- All the above options work well together.
Solution: printf