4 #ifndef RUDIMENTS_CHARSTRING_H 5 #define RUDIMENTS_CHARSTRING_H 7 #include <rudiments/private/charstringincludes.h> 20 static size_t length(
const char *
string);
23 static size_t length(
const unsigned char *
string);
26 static bool isNullOrEmpty(
const char *
string);
29 static bool isNullOrEmpty(
const unsigned char *
string);
38 static bool isYes(
const char *
string);
46 static bool isNo(
const char *
string);
49 static void zero(
char *str,
size_t size);
54 static char *append(
char *dest,
const char *source);
59 static char *append(
char *dest,
const char *source,
65 static char *append(
char *dest, int64_t number);
70 static char *append(
char *dest, uint64_t number);
75 static char *append(
char *dest,
double number);
81 static char *append(
char *dest,
double number,
88 static char *append(
char *dest,
double number,
95 static char *copy(
char *dest,
const char *source);
100 static char *copy(
char *dest,
101 const char *source,
size_t size);
107 static char *copy(
char *dest,
size_t location,
114 static char *copy(
char *dest,
size_t location,
115 const char *source,
size_t size);
121 static char *safeCopy(
char *dest,
size_t destsize,
128 static char *safeCopy(
char *dest,
size_t destsize,
129 const char *source,
size_t sourcesize);
133 static int32_t compare(
const char *str1,
const char *str2);
137 static int32_t compare(
const char *str1,
const char *str2,
142 static int32_t compareIgnoringCase(
const char *str1,
148 static int32_t compareIgnoringCase(
const char *str1,
156 static bool inSet(
const char *str,
const char *
const *
set);
162 static bool inSetIgnoringCase(
const char *str,
163 const char *
const *
set);
167 static bool contains(
const char *haystack,
172 static bool contains(
const char *haystack,
char needle);
176 static const char *findFirst(
const char *haystack,
181 static const char *findFirst(
const char *haystack,
187 static const char *findFirstOrEnd(
const char *haystack,
193 static const char *findFirstOrEnd(
const char *haystack,
198 static const char *findLast(
const char *haystack,
203 static const char *findLast(
const char *haystack,
208 static char *findFirst(
char *haystack,
const char *needle);
212 static char *findFirst(
char *haystack,
char needle);
217 static char *findFirstOrEnd(
char *haystack,
222 static char *findLast(
char *haystack,
const char *needle);
226 static char *findLast(
char *haystack,
char needle);
231 static const char *findFirstOfSet(
const char *haystack,
237 static char *findFirstOfSet(
char *haystack,
244 static const char *findFirstOfSetOrEnd(
245 const char *haystack,
252 static char *findFirstOfSetOrEnd(
259 static const char *findLastOfSet(
const char *haystack,
265 static char *findLastOfSet(
char *haystack,
272 static const char *findLastOfSetOrEnd(
273 const char *haystack,
280 static char *findLastOfSetOrEnd(
287 static size_t lengthContainingSet(
const char *haystack,
293 static size_t lengthNotContainingSet(
const char *haystack,
300 static char *duplicate(
const char *str);
307 static char *duplicate(
const char *str,
size_t length);
310 static void upper(
char *str);
313 static void lower(
char *str);
317 static void capitalize(
char *str);
320 static void rightTrim(
char *str);
324 static void rightTrim(
char *str,
char character);
327 static void leftTrim(
char *str);
331 static void leftTrim(
char *str,
char character);
334 static void bothTrim(
char *str);
337 static void bothTrim(
char *str,
char character);
342 static bool strip(
char *str,
char character);
347 static bool strip(
char *str1,
const char *str2);
352 static bool stripSet(
char *str1,
const char *
set);
356 static void replace(
char *str,
357 char oldchar,
char newchar);
361 static void replace(
char *str,
362 const char *oldchars,
char newchar);
367 static char *replace(
const char *str,
377 static char *replace(
const char *str,
378 const char *
const *oldstrset,
380 const char *
const *newstrset);
388 static char *replace(
const char *str,
395 static uint16_t integerLength(int16_t number);
399 static uint16_t integerLength(int32_t number);
403 static uint16_t integerLength(int64_t number);
407 static uint16_t integerLength(uint16_t number);
411 static uint16_t integerLength(uint32_t number);
415 static uint16_t integerLength(uint64_t number);
419 static bool isInteger(
const char *val);
423 static bool isInteger(
const char *val, int32_t size);
427 static bool isNumber(
const char *val);
431 static bool isNumber(
const char *val, int32_t size);
436 static char *parseNumber(int16_t number);
441 static char *parseNumber(uint16_t number);
446 static char *parseNumber(int16_t number,
447 uint16_t zeropadding);
452 static char *parseNumber(uint16_t number,
453 uint16_t zeropadding);
458 static char *parseNumber(int32_t number);
463 static char *parseNumber(uint32_t number);
468 static char *parseNumber(int32_t number,
469 uint16_t zeropadding);
474 static char *parseNumber(uint32_t number,
475 uint16_t zeropadding);
480 static char *parseNumber(int64_t number);
485 static char *parseNumber(uint64_t number);
490 static char *parseNumber(int64_t number,
491 uint16_t zeropadding);
496 static char *parseNumber(uint64_t number,
497 uint16_t zeropadding);
503 static char *parseNumber(
float number);
508 static char *parseNumber(
float number,
514 static char *parseNumber(
float number,
521 static char *parseNumber(
double number);
526 static char *parseNumber(
double number,
532 static char *parseNumber(
double number,
539 static char *parseNumber(
long double number);
544 static char *parseNumber(
long double number,
550 static char *parseNumber(
long double number,
555 static int64_t toInteger(
const char *
string);
560 static int64_t toInteger(
const char *
string,
561 const char **endptr);
564 static int64_t toInteger(
const char *
string, int32_t base);
569 static int64_t toInteger(
const char *
string,
570 const char **endptr, int32_t base);
573 static uint64_t toUnsignedInteger(
const char *
string);
578 static uint64_t toUnsignedInteger(
const char *
string,
579 const char **endptr);
583 static uint64_t toUnsignedInteger(
const char *
string,
590 static uint64_t toUnsignedInteger(
const char *
string,
596 static long double toFloat(
const char *
string);
608 static long double toFloatC(
const char *
string);
613 static long double toFloat(
const char *
string,
614 const char **endptr);
618 static int64_t convertAmount(
const char *amount);
622 static char *convertAmount(int64_t amount);
629 static char *convertAmount(int64_t amount,
636 static char *httpEscape(
const char *
input);
641 static char *httpUnescape(
const char *input);
647 static char *escape(
const char *input,
648 const char *characters);
654 static char *unescape(
const char *input);
659 static void escape(
const char *input, uint64_t inputsize,
660 char **
output, uint64_t *outputsize,
661 const char *characters);
666 static void unescape(
const char *input, uint64_t inputsize,
667 char **output, uint64_t *outputsize);
672 static char *base64Encode(
const unsigned char *input);
676 static char *base64Encode(
const unsigned char *input,
682 static void base64Encode(
const unsigned char *input,
685 uint64_t *outputsize);
690 static unsigned char *base64Decode(
const char *input);
694 static unsigned char *base64Decode(
const char *input,
700 static void base64Decode(
const char *input,
702 unsigned char **output,
703 uint64_t *outputsize);
706 static void obfuscate(
char *str);
710 static void deobfuscate(
char *str);
716 static void leftJustify(
char *str, int32_t length);
722 static void rightJustify(
char *str, int32_t length);
727 static void center(
char *str, int32_t length);
734 static char *pad(
const char *
string,
737 uint64_t totallength);
746 static void split(
const char *
string,
747 ssize_t stringlength,
748 const char *delimiter,
749 ssize_t delimiterlength,
752 uint64_t *listlength);
761 static void split(
const char *
string,
762 const char *delimiter,
763 ssize_t delimiterlength,
766 uint64_t *listlength);
774 static void split(
const char *
string,
775 ssize_t stringlength,
776 const char *delimiter,
779 uint64_t *listlength);
788 static void split(
const char *
string,
789 const char *delimiter,
792 uint64_t *listlength);
797 static char *subString(
const char *str,
798 size_t start,
size_t end);
803 static char *subString(
const char *str,
size_t start);
807 static char *insertString(
const char *dest,
828 static ssize_t printf(
char *buffer,
size_t length,
829 const char *format, ...);
851 static ssize_t printf(
char *buffer,
size_t length,
866 static ssize_t printf(
char **buffer,
867 const char *format, ...);
880 static ssize_t printf(
char **buffer,
884 #include <rudiments/private/charstring.h> Definition: charstring.h:16
Definition: character.h:11
Definition: regularexpression.h:14