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 Jul 6, 2021
Jul 7, 2021
Jul 7, 2021
Jul 7, 2021
Jul 7, 2021
Jul 7, 2021
Jul 8, 2021
Jul 8, 2021
Jul 8, 2021
Jul 8, 2021
Jul 11, 2021
Jul 11, 2021
Jul 12, 2021
Jul 12, 2021
Jul 12, 2021
Jul 12, 2021
Jul 12, 2021
Jul 12, 2021
Jul 12, 2021
View all files
0x05. C - Pointers, arrays and strings.
memset : A function that fills memory with a constant byte.
Prototype: char *_memset(char *s, char b, unsigned int n);
The _memset()
function fills the first n
bytes of the memory area pointed to by s
with the constant byte b
.
Returns a pointer to the memory area s
.
Read more on memset here
FYI: The standard library provides a similar function: memset
. Run man memset
to learn more.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 0-main.c 0-memset.c -o 0-memset
memcpy : A function that copies the memory area.
Prototype: char *_memcpy(char *dest, char *src, unsigned int n);
The _memcpy()
function copies n
bytes from the memory area src
to the memory area dest
.
Returns a pointer to dest
FYI: The standard library provides a similar function: memcpy
. Run man memcpy
to learn more.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 1-main.c 1-memcpy.c -o 1-memcpy
strchr : A function that locates a character in a string.
Prototype: char *_strchr(char *s, char c);
Returns a pointer to the first occurrence of the character c
in the string s
, or NULL
if the character is not found.
FYI: The standard library provides a similar function: strchr
. Run man strchr
to learn more.
Read more here on strchr .
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 2-main.c 2-strchr.c -o 2-strchr
strspn : A function that gets the length of a prefix substring.
Prototype: unsigned int _strspn(char *s, char *accept);
Returns the number of bytes in the initial segment of s
which consist only of bytes from accept
.
FYI: The standard library provides a similar function: strspn
. Run man strspn
to learn more.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 3-main.c 3-strspn.c -o 3-strspn
strpbrk : A function that searches a string for any of a set of bytes.
Prototype: char *_strpbrk(char *s, char *accept);
The _strpbrk()
function locates the first occurrence in the string s
of any of the bytes in the string accept
.
Returns a pointer to the byte in s
that matches one of the bytes in accept
, or NULL
if no such byte is found.
FYI: The standard library provides a similar function: strpbrk
. Run man strpbrk
to learn more.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 4-main.c 4-strpbrk.c -o 4-strpbrk
strstr : A function that locates a substring.
Prototype: char *_strstr(char *haystack, char *needle);
The _strstr()
function finds the first occurrence of the substring needle
in the string haystack
.
The terminating null bytes ('\0') are not compared.
Returns a pointer to the beginning of the located substring, or NULL
if the substring is not found.
FYI: The standard library provides a similar function: strstr
. Run man strstr
to learn more.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 5-main.c 5-strstr.c -o 5-strstr
Chess is mental torture : A function that prints the chessboard.
Prototype: void print_chessboard(char (*a)[8]);
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 _putchar.c 7-main.c 7-print_chessboard.c -o 7-print_chessboard
The line of life is a ragged diagonal between duty and desire : A function that prints the sum of the two diagonals of a square matrix of integers.
Prototype: void print_diagsums(int *a, int size);
Format: see main code .
You are allowed to use the standard library.
Note: that in the following example we are casting an int[][]
into an int*
.
This is not something you should do. The goal here is to make sure you understand how an array of array is stored in memory.
Compile the code this way: gcc -Wall -pedantic -Werror -Wextra -std=gnu89 8-main.c 8-print_diagsums.c -o 8-print_diagsums
You canβt perform that action at this time.