1/* 2 * Copyright 2004-2012 Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _STRING_H_ 6#define _STRING_H_ 7 8 9#include <locale_t.h> 10#include <sys/types.h> 11 12 13#ifdef __cplusplus 14extern "C" { 15#endif 16 17 18/* memXXX() functions */ 19extern void *memchr(const void *source, int value, size_t length); 20extern int memcmp(const void *buffer1, const void *buffer2, size_t length); 21extern void *memcpy(void *dest, const void *source, size_t length); 22extern void *memccpy(void *dest, const void *source, int stopByte, size_t length); 23extern void *memmove(void *dest, const void *source, size_t length); 24extern void *memset(void *dest, int value, size_t length); 25 26#ifdef _GNU_SOURCE 27extern void *memrchr(const void *source, int value, size_t length); 28#endif 29 30/* string functions */ 31extern char *strcpy(char *dest, const char *source); 32extern char *strncpy(char *dest, const char *source, size_t length); 33extern char *strcat(char *dest, const char *source); 34extern char *strncat(char *dest, const char *source, size_t length); 35 36extern size_t strlen(const char *string); 37extern int strcmp(const char *string1, const char *string2); 38extern int strncmp(const char *string1, const char *string2, size_t length); 39 40extern char *strchr(const char *string, int character); 41extern char *strrchr(const char *string, int character); 42extern char *strstr(const char *string, const char *searchString); 43 44#ifdef _GNU_SOURCE 45extern char *strchrnul(const char *string, int character); 46#endif 47 48extern char *strpbrk(const char *string, const char *set); 49extern char *strtok(char *string, const char *set); 50extern char *strtok_r(char *string, const char *set, char **savePointer); 51extern size_t strspn(const char *string, const char *set); 52extern size_t strcspn(const char *string, const char *set); 53 54extern int strcoll(const char *string1, const char *string2); 55extern size_t strxfrm(char *string1, const char *string2, size_t length); 56 57extern char *strerror(int errorCode); 58extern int strerror_r(int errorCode, char *buffer, size_t bufferSize); 59 60extern char *strcasestr(const char *string, const char *searchString); 61 62extern char *strdup(const char *string); 63extern char *strndup(const char* string, size_t size); 64extern char *stpcpy(char *dest, const char *source); 65extern char *stpncpy(char *dest, const char *source, size_t size); 66 67extern size_t strlcat(char *dest, const char *source, size_t length); 68extern size_t strlcpy(char *dest, const char *source, size_t length); 69 70extern size_t strnlen(const char *string, size_t count); 71 72extern char *strlwr(char *string); 73extern char *strupr(char *string); 74 75/* extern char *strsep(char **stringPointer, const char *delimiter); */ 76 77extern const char *strsignal(int signum); 78 79/* locale versions of string functions */ 80extern int strcoll_l(const char *string1, const char *string2, locale_t locale); 81extern char *strerror_l(int errorCode, locale_t locale); 82extern size_t strxfrm_l(char *string1, const char *string2, size_t length, locale_t locale); 83 84/* for compatibility, pull in functions declared in strings.h */ 85#include <strings.h> 86 87 88#ifdef __cplusplus 89} 90#endif 91 92#endif /* _STRING_H_ */ 93