0x01-variables_if_else_while
0x02-functions_nested_loops
0x04-more_functions_nested_loops
0x05-pointers_arrays_strings
0x06-pointers_arrays_strings
0x07-pointers_arrays_strings
0x13-more_singly_linked_lists
Folders and files Name Name Last commit message
Last commit date
parent directory Oct 4, 2022
Oct 4, 2022
Oct 4, 2022
Oct 4, 2022
Oct 4, 2022
Oct 4, 2022
Oct 4, 2022
Oct 28, 2022
Oct 4, 2022
View all files
Float like a butterfly, sting like a bee
Prototype: char *create_array(unsigned int size, char c);
Returns NULL
if size = 0
.
Returns a pointer to the array, or NULL
if it fails.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 0-main.c 0-create_array.c -o a
The woman who has no imagination has no wings
Prototype: char *_strdup(char *str);
The _strdup()
function returns a pointer to a new string which is a duplicate of the string str
.
Memory for the new string is obtained with malloc
, and can be freed with free
.
Returns NULL
if str = NULL.
On success, the _strdup
function returns a pointer to the duplicated string. It returns NULL
if insufficient memory was available.
FYI: The standard library provides a similar function: strdup
. Run man strdup
to learn more.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 1-main.c 1-strdup.c -o s
He who is not courageous enough to take risks will accomplish nothing in life : A function that concatenates two strings.
Prototype: char *str_concat(char *s1, char *s2);
The returned pointer should point to a newly allocated space in memory which contains the contents of s1
, followed by the contents of s2
, and null terminated.
If NULL
is passed, treat it as an empty string.
The function should return NULL
on faliure.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 2-main.c 2-str_concat.c -o c
If you even dream of beating me you'd better wake up and apologize : A function that returns a pointer to a 2 dimensional array of integers.
Prototype: int **alloc_grid(int width, int height);
Each element of the grid should be initialized to 0
.
The function should return NULL
on faliure.
If width
or height
is 0
or negative, return NULL
.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 3-main.c 3-alloc_grid.c -o g
It's not bragging if you can back it up : A function that frees a 2 dimensional grid previously created by the alloc_grid function.
Prototype: void free_grid(int **grid, int height);
Note that we will first compile the alloc_grid
file to make sure it compiles.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 4-main.c 3-alloc_grid.c 4-free_grid.c -o f
It isn't the mountains ahead to climb that wear you out; it's the pebble in your shoe : A function that concatenates all the arguments of your program.
Prototype: char *argstostr(int ac, char **av);
Returns NULL
if ac == 0
or av == NULL
Returns a pointer to a new string, or NULL
if it fails.
Each argument should be followed by a \n
in the new string.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 100-main.c 100-argstostr.c -o args
I will show you how great I am : A function that splits a string into words.
Prototype: char **strtow(char *str);
The function returns a pointer to an array of strings (words).
Each element of this array should contain a single word, null-terminated.
The last element of the returned array should be NULL
.
Words are separated by spaces.
Returns NULL
if str == NULL
or str == ""
.
If your function fails, it should return NULL
.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 101-main.c 101-strtow.c -o strtow
You can’t perform that action at this time.