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);
366 static uint16_t integerLength(int16_t number);
370 static uint16_t integerLength(int32_t number);
374 static uint16_t integerLength(int64_t number);
378 static uint16_t integerLength(uint16_t number);
382 static uint16_t integerLength(uint32_t number);
386 static uint16_t integerLength(uint64_t number);
390 static bool isInteger(
const char *val);
394 static bool isInteger(
const char *val, int32_t size);
398 static bool isNumber(
const char *val);
402 static bool isNumber(
const char *val, int32_t size);
407 static char *parseNumber(int16_t number);
412 static char *parseNumber(uint16_t number);
417 static char *parseNumber(int16_t number,
418 uint16_t zeropadding);
423 static char *parseNumber(uint16_t number,
424 uint16_t zeropadding);
429 static char *parseNumber(int32_t number);
434 static char *parseNumber(uint32_t number);
439 static char *parseNumber(int32_t number,
440 uint16_t zeropadding);
445 static char *parseNumber(uint32_t number,
446 uint16_t zeropadding);
451 static char *parseNumber(int64_t number);
456 static char *parseNumber(uint64_t number);
461 static char *parseNumber(int64_t number,
462 uint16_t zeropadding);
467 static char *parseNumber(uint64_t number,
468 uint16_t zeropadding);
474 static char *parseNumber(
float number);
479 static char *parseNumber(
float number,
485 static char *parseNumber(
float number,
492 static char *parseNumber(
double number);
497 static char *parseNumber(
double number,
503 static char *parseNumber(
double number,
510 static char *parseNumber(
long double number);
515 static char *parseNumber(
long double number,
521 static char *parseNumber(
long double number,
526 static int64_t toInteger(
const char *
string);
531 static int64_t toInteger(
const char *
string,
532 const char **endptr);
535 static int64_t toInteger(
const char *
string, int32_t base);
540 static int64_t toInteger(
const char *
string,
541 const char **endptr, int32_t base);
544 static uint64_t toUnsignedInteger(
const char *
string);
549 static uint64_t toUnsignedInteger(
const char *
string,
550 const char **endptr);
554 static uint64_t toUnsignedInteger(
const char *
string,
561 static uint64_t toUnsignedInteger(
const char *
string,
567 static long double toFloat(
const char *
string);
572 static long double toFloat(
const char *
string,
573 const char **endptr);
577 static int64_t convertAmount(
const char *amount);
581 static char *convertAmount(int64_t amount);
588 static char *convertAmount(int64_t amount,
595 static char *httpEscape(
const char *input);
600 static char *httpUnescape(
const char *input);
606 static char *escape(
const char *input,
607 const char *characters);
613 static char *unescape(
const char *input);
618 static void escape(
const char *input, uint64_t inputsize,
619 char **output, uint64_t *outputsize,
620 const char *characters);
625 static void unescape(
const char *input, uint64_t inputsize,
626 char **output, uint64_t *outputsize);
631 static char *base64Encode(
const unsigned char *input);
635 static char *base64Encode(
const unsigned char *input,
641 static void base64Encode(
const unsigned char *input,
644 uint64_t *outputsize);
649 static unsigned char *base64Decode(
const char *input);
653 static unsigned char *base64Decode(
const char *input,
659 static void base64Decode(
const char *input,
661 unsigned char **output,
662 uint64_t *outputsize);
665 static void obfuscate(
char *str);
669 static void deobfuscate(
char *str);
675 static void leftJustify(
char *str, int32_t length);
681 static void rightJustify(
char *str, int32_t length);
686 static void center(
char *str, int32_t length);
693 static char *pad(
const char *
string,
696 uint64_t totallength);
705 static void split(
const char *
string,
706 ssize_t stringlength,
707 const char *delimiter,
708 ssize_t delimiterlength,
711 uint64_t *listlength);
720 static void split(
const char *
string,
721 const char *delimiter,
722 ssize_t delimiterlength,
725 uint64_t *listlength);
733 static void split(
const char *
string,
734 ssize_t stringlength,
735 const char *delimiter,
738 uint64_t *listlength);
747 static void split(
const char *
string,
748 const char *delimiter,
751 uint64_t *listlength);
756 static char *subString(
const char *str,
757 size_t start,
size_t end);
762 static char *subString(
const char *str,
size_t start);
766 static char *insertString(
const char *dest,
787 static ssize_t printf(
char *buffer,
size_t length,
788 const char *format, ...);
810 static ssize_t printf(
char *buffer,
size_t length,
814 #include <rudiments/private/charstring.h> Definition: charstring.h:16
Definition: character.h:11