summaryrefslogtreecommitdiff
path: root/include/lib.h
blob: 43b95a68320b250e282b90a0376889a180bb4aeb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#pragma once

/**
 * The  memcmp() function compares the first n bytes (each interpreted as unsigned char) of the memory
 * areas s1 and s2.
 */
extern int memcmp(const void *restrict s1, const void *restrict s2, unsigned long n);

/**
 * The  memcpy()  function  copies n bytes from memory area src to memory area dest.
 * The memory areas must not overlap.
 */
extern void *memcpy(void *restrict dest, const void *restrict src, unsigned long n);

/**
 * The  memmove()  function copies n bytes from memory area src to memory area dest.  The memory areas
 * may overlap: copying takes place as though the bytes in src are first copied into a temporary array
 * that does not overlap src or dest, and the bytes are then copied from the temporary array to dest.
 */
extern void *memmove(void *dest, const void *src, unsigned long n);

/**
 * The  memset() function fills the first n bytes of the memory area pointed to by s with the constant
 * byte c.
 */
extern void *memset(void *restrict dest, int c, unsigned long n);

/**
 * The  strcmp()  function  compares  the two strings s1 and s2.  The locale is not taken into account
 * (for a locale-aware comparison, see strcoll(3)).  The comparison is done using unsigned characters.
 */
extern int strncmp(const char *restrict s1, const char *restrict s2, unsigned long n);

/**
 * Copys the string pointed to by src , into a string at the buffer pointer to by dest.
 * The dest buffer must be long enough to hold src.
 */
extern char *strcpy(char *restrict dest, const char *restrict src);

/**
 * Copys the string pointed to by src , into a string at the buffer pointer to by dest.
 * The dest buffer must be long enough to hold src or size n.
 */
extern char *strncpy(char *restrict dest, const char *restrict src, unsigned long n);

/**
 * @returns 1 if c is a space
 */
extern int isspace(int c);

/**
 * @returns 1 if c is a digit (0 - 9)
 */
extern int isdigit(int c);

/**
 * converts single digit int to base 36
 * @param i - int
 * @returns c - base 36 char
 */
extern char itoc(int i);

/**
 * converts single base 36 chat into int
 * @param c - base 36 char
 * @returns i - int
 */
extern int ctoi(char c);

/**
 * Converts the initial portiion of the string pointed to by s to int.
 * @param s - the string to convert
 * @returns the number inside s or 0 on error
 */
extern int atoi(const char* s);

/**
 * Converts the initial portiion of the string pointed to by s to long.
 * @param s - the string to convert
 * @returns the number inside s or 0 on error
 */
extern long int atol(const char* s);

/**
 * Converts the initial portiion of the string pointed to by s to long long.
 * @param s - the string to convert
 * @returns the number inside s or 0 on error
 */
extern long long int atoll(const char* s);

/**
 * Converts a integer to asci inside a string with a given radix (base).
 * @param n - the number to conver 
 * @param buffer - the string buffer
 * @param radix - the base to convert
 */
extern char *itoa(int n, char *buffer, int radix);

/**
 * Converts a long to asci inside a string with a given radix (base).
 * @param n - the number to conver 
 * @param buffer - the string buffer
 * @param radix - the base to convert
 */
extern char *ltoa(long int n, char *buffer, int radix);

/**
 * Converts a unsigned integer to asci inside a string with a given radix (base).
 * @param n - the number to conver 
 * @param buffer - the string buffer
 * @param radix - the base to convert
 */
extern char *utoa(unsigned int n, char *buffer, int radix);

/**
 * Converts a unsigned long to asci inside a string with a given radix (base).
 * @param n - the number to conver 
 * @param buffer - the string buffer
 * @param radix - the base to convert
 */
extern char *ultoa(unsigned long int n, char *buffer, int radix);

/**
 * Converts the string in str to an int value based on the given base.
 * The endptr is updated to where the string was no longer valid.
 * @param str - the string buffer
 * @param endptr - the endptr
 * @param base - the base to convert to
 * @returns 0 on error or success, error if endptr is still equal to str
 */
extern int strtoi(const char *str, char **endptr, int base);

/**
 * Converts the string in str to an long value based on the given base.
 * The endptr is updated to where the string was no longer valid.
 * @param str - the string buffer
 * @param endptr - the endptr
 * @param base - the base to convert to
 * @returns 0 on error or success, error if endptr is still equal to str
 */
extern long int strtol(const char *str, char **endptr, int base);

/**
 * Converts the string in str to an long long value based on the given base.
 * The endptr is updated to where the string was no longer valid.
 * @param str - the string buffer
 * @param endptr - the endptr
 * @param base - the base to convert to
 * @returns 0 on error or success, error if endptr is still equal to str
 */
extern long long int strtoll(const char *str, char **endptr, int base);