00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef _CPP_CSTRING
00037 #define _CPP_CSTRING 1
00038
00039 #include <bits/c++config.h>
00040 #include <bits/std_cstddef.h>
00041
00042 #pragma GCC system_header
00043 #include <string.h>
00044
00045
00046 #undef memcpy
00047 #undef memmove
00048 #undef strcpy
00049 #undef strncpy
00050 #undef strcat
00051 #undef strncat
00052 #undef memcmp
00053 #undef strcmp
00054 #undef strcoll
00055 #undef strncmp
00056 #undef strxfrm
00057 #undef memchr
00058 #undef strchr
00059 #undef strcspn
00060 #undef strpbrk
00061 #undef strrchr
00062 #undef strspn
00063 #undef strstr
00064 #undef strtok
00065 #undef memset
00066 #undef strerror
00067 #undef strlen
00068
00069 namespace std
00070 {
00071 extern "C" void* memcpy(void*, const void*, size_t);
00072 extern "C" void* memmove(void*, const void*, size_t);
00073 extern "C" char* strcpy(char*, const char*);
00074 extern "C" char* strncpy(char*, const char*, size_t);
00075 extern "C" char* strcat(char*, const char*);
00076 extern "C" char* strncat(char*, const char*, size_t);
00077 extern "C" int memcmp(const void*, const void*, size_t);
00078 extern "C" int strcmp(const char*, const char*);
00079 extern "C" int strcoll(const char*, const char*);
00080 extern "C" int strncmp(const char*, const char*, size_t);
00081 extern "C" size_t strxfrm(char*, const char*, size_t);
00082 extern "C" const void* memchr(const void*, int, size_t);
00083 inline void*
00084 memchr(void* __p, int __c, size_t __n)
00085 {
00086 return const_cast<void*>(memchr(const_cast<const void*>(__p), __c, __n));
00087 }
00088 extern "C" const char* strchr(const char*, int);
00089 inline char*
00090 strchr(char* __s1, int __n)
00091 {
00092 return const_cast<char*>(strchr(const_cast<const char*>(__s1), __n));
00093 }
00094 extern "C" size_t strcspn(const char*, const char*);
00095 extern "C" const char* strpbrk(const char*, const char*);
00096 inline char*
00097 strpbrk(char* __s1, const char* __s2)
00098 {
00099 return const_cast<char*>(strpbrk(const_cast<const char*>(__s1), __s2));
00100 }
00101 extern "C" const char* strrchr(const char*, int);
00102 inline char*
00103 strrchr(char* __s1, int __n)
00104 {
00105 return const_cast<char*>(strrchr(const_cast<const char*>(__s1), __n));
00106 }
00107 extern "C" size_t strspn(const char*, const char*);
00108 extern "C" const char* strstr(const char*, const char*);
00109 inline char*
00110 strstr(char* __s1, const char* __s2)
00111 {
00112 return const_cast<char*>(strstr(const_cast<const char*>(__s1), __s2));
00113 }
00114 extern "C" char* strtok(char*, const char*);
00115 extern "C" void* memset(void*, int, size_t);
00116 extern "C" char* strerror(int);
00117 extern "C" size_t strlen(const char*);
00118 }
00119
00120 #endif
00121
00122
00123