Turnstone Operating System
Loading...
Searching...
No Matches
strings.h File Reference

main string operations interface More...

#include <types.h>
#include <memory.h>
#include <sunday_match.h>

Macros

#define ___STRINGS_H   0
 
#define strcontains(str, pattern)
 checks str contains pattern
 
#define strcat(s1, s2)
 
#define atoi(number)
 
#define atou(number)
 
#define atoh(number)
 
#define itoa(number)
 
#define itoh(number)
 
#define utoa(number)
 
#define utoh(number)
 
#define strdup_at_heap(heap, src)
 
#define strdup(src)
 
#define strndup(src, n)
 

Functions

size_t strlen (const char_t *string)
 calculates null ended string's length
 
int8_t strcmp (const char_t *string1, const char_t *string2)
 compares two string
 
int8_t strncmp (const char_t *string1, const char_t *string2, size_t n)
 compares two string with first n bytes
 
int8_t strstarts (const char_t *str, const char_t *prefix)
 checks str starts with prefix
 
int8_t strends (const char_t *str, const char_t *suffix)
 checks str ends with suffix
 
char_tstrchr (const char_t *s, int32_t c)
 finds first occurance of char in string
 
char_tstrrchr (const char_t *s, int32_t c)
 finds first occurance of char in string
 
char_tstrstr (const char_t *haystack, const char_t *needle)
 finds first occurance of char in string
 
char_tstrcat_at_heap (memory_heap_t *heap, const char_t *string1, const char_t *string2)
 concanates two string and returns new one
 
int8_t strcopy (const char_t *source, char_t *destination)
 copies source string to destination string
 
char * strrev (const char_t *source)
 reverse a string
 
number_t ato_base (const char_t *source, number_t base)
 converts string into number
 
unumber_t atou_base (const char_t *source, number_t base)
 converts string into number
 
char_tito_base (number_t number, number_t base)
 convers number to its string representation
 
char_tuto_base (unumber_t number, number_t base)
 convers unsigned number to its string representation
 
char_tstrndup_at_heap (memory_heap_t *heap, const char_t *src, size_t n)
 duplicate string at heap
 
char_t ** strsplit (const char_t *str, const char_t token, int64_t **lengths, int64_t *count)
 splits string into array
 
char_tstrupper (char_t *str)
 converts string to upper case
 
char_tstruppercopy (const char_t *str)
 duplicates string and converts it to upper case
 
char_tstrlower (char_t *str)
 converts string to lower case
 
char_tstrlowercopy (const char_t *str)
 duplicates string and converts it to lower case
 
char_tstrtrim_right (char_t *str)
 
int8_t str_is_upper (char_t *str)
 
int64_t wchar_size (const char16_t *str)
 
char_tchar16_to_char (char16_t *src)
 
char16_tchar_to_wchar (const char_t *str)
 
int64_t lchar_size (const char32_t *str)
 
char_tchar32_to_char (char32_t *src)
 
char32_tchar_to_lchar (char_t *str)
 
uint64_t strhash (const char_t *input)
 
char_tstrprintf (const char_t *format,...)
 
char_tvstrprintf (const char_t *format, va_list args)
 

Detailed Description

main string operations interface

>

This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.

Macro Definition Documentation

◆ ___STRINGS_H

#define ___STRINGS_H   0

prevent duplicate header error macro

◆ atoh

#define atoh ( number)
Value:
atou_base(number, 16)
unumber_t atou_base(const char_t *source, number_t base)
converts string into number
Definition strings.xx.c:107

atou_base macro for base 16

◆ atoi

#define atoi ( number)
Value:
ato_base(number, 10)
number_t ato_base(const char_t *source, number_t base)
converts string into number
Definition strings.xx.c:75

ato_base macro for base 10

◆ atou

#define atou ( number)
Value:
atou_base(number, 16)

atou_base macro for base 10

◆ itoa

#define itoa ( number)
Value:
ito_base(number, 10)
char_t * ito_base(number_t number, number_t base)
convers number to its string representation
Definition strings.xx.c:130

ito_base macro for base 10

◆ itoh

#define itoh ( number)
Value:
ito_base(number, 16)

ito_base macro for base 16

◆ strcat

#define strcat ( s1,
s2 )
Value:
strcat_at_heap(NULL, s1, s2)
char_t * strcat_at_heap(memory_heap_t *heap, const char_t *string1, const char_t *string2)
concanates two string and returns new one
Definition strings.xx.c:251

strcat at default heap

◆ strcontains

#define strcontains ( str,
pattern )
Value:
(strstr(str, pattern) != NULL)
char_t * strstr(const char_t *haystack, const char_t *needle)
finds first occurance of char in string
Definition strings.xx.c:239

checks str contains pattern

Parameters
strstring for look
patternto check
Returns
-1 if str does not contain pattern, else position

◆ strdup

#define strdup ( src)
Value:
strndup_at_heap(NULL, src, strlen(src))
size_t strlen(const char_t *string)
calculates null ended string's length
Definition strings.xx.c:17
char_t * strndup_at_heap(memory_heap_t *heap, const char_t *src, size_t n)
duplicate string at heap
Definition strings.xx.c:172

string duplicate at default heap

◆ strdup_at_heap

#define strdup_at_heap ( heap,
src )
Value:
strndup_at_heap(heap, src, strlen(src))

string duplicate at heap

◆ strndup

#define strndup ( src,
n )
Value:
strndup_at_heap(NULL, src, n)

string duplicate with length at default heap

◆ utoa

#define utoa ( number)
Value:
uto_base(number, 10)
char_t * uto_base(unumber_t number, number_t base)
convers unsigned number to its string representation
Definition strings.xx.c:151

◆ utoh

#define utoh ( number)
Value:
uto_base(number, 16)

Function Documentation

◆ ato_base()

number_t ato_base ( const char_t * source,
number_t base )

converts string into number

Parameters
[in]sourcestring represents number in base
[in]basebase of number inside string
Returns
number

◆ atou_base()

unumber_t atou_base ( const char_t * source,
number_t base )

converts string into number

Parameters
[in]sourcestring represents number in base
[in]basebase of number inside string
Returns
number

◆ ito_base()

char_t * ito_base ( number_t number,
number_t base )

convers number to its string representation

Parameters
[in]numbernumber to be converted string
[in]basebase value of conversion
Returns
string represents number

return value should be freed or memory leak will be happened

◆ strcat_at_heap()

char_t * strcat_at_heap ( memory_heap_t * heap,
const char_t * string1,
const char_t * string2 )

concanates two string and returns new one

Parameters
string1first string
string2second string
Returns
new string, needs freeing or memory leak

◆ strchr()

char_t * strchr ( const char_t * s,
int32_t c )

finds first occurance of char in string

Parameters
sstring for look
cchar to find
Returns
pointer to first occurance of char in string

◆ strcmp()

int8_t strcmp ( const char_t * string1,
const char_t * string2 )

compares two string

Parameters
string1first string
string2second string
Returns
<0 if string1>string2, 0 string1=string2, >0 string1<string2

◆ strcopy()

int8_t strcopy ( const char_t * source,
char_t * destination )

copies source string to destination string

Parameters
sourcesource string
destinationdestination string
Returns
0 on success

NULL will not be copied. destination should be equal or greater then source. destination should have space for NULL.

◆ strends()

int8_t strends ( const char_t * str,
const char_t * suffix )

checks str ends with suffix

Parameters
strstring for look
suffixto compare
Returns
0 if str ends with suffix, else -1

◆ strlen()

size_t strlen ( const char_t * string)

calculates null ended string's length

Parameters
[in]stringstring to calculate length
Returns
length

◆ strlower()

char_t * strlower ( char_t * str)

converts string to lower case

Parameters
[in]strstring to lower case
Returns
input string

◆ strlowercopy()

char_t * strlowercopy ( const char_t * str)

duplicates string and converts it to lower case

Parameters
[in]strstring to lower case
Returns
new lowercased string

◆ strncmp()

int8_t strncmp ( const char_t * string1,
const char_t * string2,
size_t n )

compares two string with first n bytes

Parameters
string1first string
string2second string
nfirst n bytes
Returns
<0 if string1>string2, 0 string1=string2, >0 string1<string2

◆ strndup_at_heap()

char_t * strndup_at_heap ( memory_heap_t * heap,
const char_t * src,
size_t n )

duplicate string at heap

Parameters
[in]heapdestination heap
[in]srcsource string
[in]lengthof destination string
Returns
duplicate at heap

◆ strrchr()

char_t * strrchr ( const char_t * s,
int32_t c )

finds first occurance of char in string

Parameters
sstring for look
cchar to find
Returns
pointer to first occurance of char in string

◆ strrev()

char * strrev ( const char_t * source)

reverse a string

Parameters
[in]sourcestring to be reversed
Returns
reversed string

allocates new space, hence return value needs be freed, else leak will be happened

◆ strsplit()

char_t ** strsplit ( const char_t * str,
const char_t token,
int64_t ** lengths,
int64_t * count )

splits string into array

Parameters
[in]strstring to tokinize
[in]tokensplit char
[out]lengthsarray of each splitted part's length
[out]countsplitted array length
Returns
array of starts of each part

◆ strstarts()

int8_t strstarts ( const char_t * str,
const char_t * prefix )

checks str starts with prefix

Parameters
strstring for look
prefixto compare
Returns
0 if str starts with prefix, else -1

◆ strstr()

char_t * strstr ( const char_t * haystack,
const char_t * needle )

finds first occurance of char in string

Parameters
sstring for look
cchar to find
Returns
pointer to first occurance of char in string

◆ strupper()

char_t * strupper ( char_t * str)

converts string to upper case

Parameters
[in]strstring to upper case
Returns
input string

◆ struppercopy()

char_t * struppercopy ( const char_t * str)

duplicates string and converts it to upper case

Parameters
[in]strstring to upper case
Returns
new uppercased string

◆ uto_base()

char_t * uto_base ( unumber_t number,
number_t base )

convers unsigned number to its string representation

Parameters
[in]numberunsigned number to be converted string
[in]basebase value of conversion
Returns
string represents number

return value should be freed or memory leak will be happened