Prev Next
C string.h library functions:
All C inbuilt functions which are declared in string.h header file are given below. The source code for string.h header file is also given below for your reference.
List of inbuilt C functions in string.h file:
String functions
|
Description
|
strcat ( ) | Concatenates str2 at the end of str1 |
strncat ( ) | Appends a portion of string to another |
strcpy ( ) | Copies str2 into str1 |
strncpy ( ) | Copies given number of characters of one string to another |
strlen ( ) | Gives the length of str1 |
strcmp ( ) | Returns 0 if str1 is same as str2. Returns <0 if strl < str2. Returns >0 if str1 > str2 |
strcmpi ( ) | Same as strcmp() function. But, this function negotiates case. “A” and “a” are treated as same. |
strchr ( ) | Returns pointer to first occurrence of char in str1 |
strrchr ( ) | last occurrence of given character in a string is found |
strstr ( ) | Returns pointer to first occurrence of str2 in str1 |
strrstr ( ) | Returns pointer to last occurrence of str2 in str1 |
strdup ( ) | Duplicates the string |
strlwr ( ) | Converts string to lowercase |
strupr ( ) | Converts string to uppercase |
strrev ( ) | Reverses the given string |
strset ( ) | Sets all character in a string to given character |
strnset ( ) | It sets the portion of characters in a string to given character |
strtok ( ) | Tokenizing given string using delimiter |
string functions
|
Description
|
memset() | It is used to initialize a specified number of bytes to null or any other value in the buffer |
memcpy() | It is used to copy a specified number of bytes from one memory to another |
memmove() | It is used to copy a specified number of bytes from one memory to another or to overlap on same memory. |
memcmp() | It is used to compare specified number of characters from two buffers |
memicmp() | It is used to compare specified number of characters from two buffers regardless of the case of the characters |
memchr() | It is used to locate the first occurrence of the character in the specified string |
Source code for string.h header file:
Please find the source code for string.h header file below. This code is taken from DevC++ compiler files for your reference.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
/* * string.h * This file has no copyright assigned and is placed in the Public Domain. * This file is a part of the mingw-runtime package. * No warranty is given; refer to the file DISCLAIMER within the package. * * Definitions for memory and string functions. * */ #ifndef _STRING_H_ #define _STRING_H_ /* All the headers include this file. */ #include <_mingw.h> /* * Define size_t, wchar_t and NULL */ #define __need_size_t #define __need_wchar_t #define __need_NULL #ifndef RC_INVOKED #include <stddef.h> #endif /* Not RC_INVOKED */ #ifndef RC_INVOKED #ifdef __cplusplus extern "C" { #endif /* * Prototypes of the ANSI Standard C library string functions. */ _CRTIMP void* __cdecl memchr (const void*, int, size_t) __MINGW_ATTRIB_PURE; _CRTIMP int __cdecl memcmp (const void*, const void*, size_t) __MINGW_ATTRIB_PURE; _CRTIMP void* __cdecl memcpy (void*, const void*, size_t); _CRTIMP void* __cdecl memmove (void*, const void*, size_t); _CRTIMP void* __cdecl memset (void*, int, size_t); _CRTIMP char* __cdecl strcat (char*, const char*); _CRTIMP char* __cdecl strchr (const char*, int) __MINGW_ATTRIB_PURE; _CRTIMP int __cdecl strcmp (const char*, const char*) __MINGW_ATTRIB_PURE; _CRTIMP int __cdecl strcoll (const char*, const char*); /* Compare using locale */ _CRTIMP char* __cdecl strcpy (char*, const char*); _CRTIMP size_t __cdecl strcspn (const char*, const char*) __MINGW_ATTRIB_PURE; _CRTIMP char* __cdecl strerror (int); /* NOTE: NOT an old name wrapper. */ _CRTIMP size_t __cdecl strlen (const char*) __MINGW_ATTRIB_PURE; _CRTIMP char* __cdecl strncat (char*, const char*, size_t); _CRTIMP int __cdecl strncmp (const char*, const char*, size_t) __MINGW_ATTRIB_PURE; _CRTIMP char* __cdecl strncpy (char*, const char*, size_t); _CRTIMP char* __cdecl strpbrk (const char*, const char*) __MINGW_ATTRIB_PURE; _CRTIMP char* __cdecl strrchr (const char*, int) __MINGW_ATTRIB_PURE; _CRTIMP size_t __cdecl strspn (const char*, const char*) __MINGW_ATTRIB_PURE; _CRTIMP char* __cdecl strstr (const char*, const char*) __MINGW_ATTRIB_PURE; _CRTIMP char* __cdecl strtok (char*, const char*); _CRTIMP size_t __cdecl strxfrm (char*, const char*, size_t); #ifndef __STRICT_ANSI__ /* * Extra non-ANSI functions provided by the CRTDLL library */ _CRTIMP char* __cdecl _strerror (const char *); _CRTIMP void* __cdecl _memccpy (void*, const void*, int, size_t); _CRTIMP int __cdecl _memicmp (const void*, const void*, size_t); _CRTIMP char* __cdecl _strdup (const char*) __MINGW_ATTRIB_MALLOC; _CRTIMP int __cdecl _strcmpi (const char*, const char*); _CRTIMP int __cdecl _stricmp (const char*, const char*); _CRTIMP int __cdecl _stricoll (const char*, const char*); _CRTIMP char* __cdecl _strlwr (char*); _CRTIMP int __cdecl _strnicmp (const char*, const char*, size_t); _CRTIMP char* __cdecl _strnset (char*, int, size_t); _CRTIMP char* __cdecl _strrev (char*); _CRTIMP char* __cdecl _strset (char*, int); _CRTIMP char* __cdecl _strupr (char*); _CRTIMP void __cdecl _swab (const char*, char*, size_t); #ifdef __MSVCRT__ _CRTIMP int __cdecl _strncoll(const char*, const char*, size_t); _CRTIMP int __cdecl _strnicoll(const char*, const char*, size_t); #endif #ifndef _NO_OLDNAMES /* * Non-underscored versions of non-ANSI functions. They live in liboldnames.a * and provide a little extra portability. Also a few extra UNIX-isms like * strcasecmp. */ _CRTIMP void* __cdecl memccpy (void*, const void*, int, size_t); _CRTIMP int __cdecl memicmp (const void*, const void*, size_t); _CRTIMP char* __cdecl strdup (const char*) __MINGW_ATTRIB_MALLOC; _CRTIMP int __cdecl strcmpi (const char*, const char*); _CRTIMP int __cdecl stricmp (const char*, const char*); __CRT_INLINE int __cdecl strcasecmp (const char * __sz1, const char * __sz2) {return _stricmp (__sz1, __sz2);} _CRTIMP int __cdecl stricoll (const char*, const char*); _CRTIMP char* __cdecl strlwr (char*); _CRTIMP int __cdecl strnicmp (const char*, const char*, size_t); __CRT_INLINE int __cdecl strncasecmp (const char * __sz1, const char * __sz2, size_t __sizeMaxCompare) {return _strnicmp (__sz1, __sz2, __sizeMaxCompare);} _CRTIMP char* __cdecl strnset (char*, int, size_t); _CRTIMP char* __cdecl strrev (char*); _CRTIMP char* __cdecl strset (char*, int); _CRTIMP char* __cdecl strupr (char*); #ifndef _UWIN _CRTIMP void __cdecl swab (const char*, char*, size_t); #endif /* _UWIN */ #endif /* _NO_OLDNAMES */ #endif /* Not __STRICT_ANSI__ */ #ifndef _WSTRING_DEFINED /* * Unicode versions of the standard calls. * Also in wchar.h, where they belong according to ISO standard. */ _CRTIMP wchar_t* __cdecl wcscat (wchar_t*, const wchar_t*); _CRTIMP wchar_t* __cdecl wcschr (const wchar_t*, wchar_t); _CRTIMP int __cdecl wcscmp (const wchar_t*, const wchar_t*); _CRTIMP int __cdecl wcscoll (const wchar_t*, const wchar_t*); _CRTIMP wchar_t* __cdecl wcscpy (wchar_t*, const wchar_t*); _CRTIMP size_t __cdecl wcscspn (const wchar_t*, const wchar_t*); /* Note: _wcserror requires __MSVCRT_VERSION__ >= 0x0700. */ _CRTIMP size_t __cdecl wcslen (const wchar_t*); _CRTIMP wchar_t* __cdecl wcsncat (wchar_t*, const wchar_t*, size_t); _CRTIMP int __cdecl wcsncmp(const wchar_t*, const wchar_t*, size_t); _CRTIMP wchar_t* __cdecl wcsncpy(wchar_t*, const wchar_t*, size_t); _CRTIMP wchar_t* __cdecl wcspbrk(const wchar_t*, const wchar_t*); _CRTIMP wchar_t* __cdecl wcsrchr(const wchar_t*, wchar_t); _CRTIMP size_t __cdecl wcsspn(const wchar_t*, const wchar_t*); _CRTIMP wchar_t* __cdecl wcsstr(const wchar_t*, const wchar_t*); _CRTIMP wchar_t* __cdecl wcstok(wchar_t*, const wchar_t*); _CRTIMP size_t __cdecl wcsxfrm(wchar_t*, const wchar_t*, size_t); #ifndef __STRICT_ANSI__ /* * Unicode versions of non-ANSI string functions provided by CRTDLL. */ /* NOTE: _wcscmpi not provided by CRTDLL, this define is for portability */ #define _wcscmpi _wcsicmp _CRTIMP wchar_t* __cdecl _wcsdup (const wchar_t*); _CRTIMP int __cdecl _wcsicmp (const wchar_t*, const wchar_t*); _CRTIMP int __cdecl _wcsicoll (const wchar_t*, const wchar_t*); _CRTIMP wchar_t* __cdecl _wcslwr (wchar_t*); _CRTIMP int __cdecl _wcsnicmp (const wchar_t*, const wchar_t*, size_t); _CRTIMP wchar_t* __cdecl _wcsnset (wchar_t*, wchar_t, size_t); _CRTIMP wchar_t* __cdecl _wcsrev (wchar_t*); _CRTIMP wchar_t* __cdecl _wcsset (wchar_t*, wchar_t); _CRTIMP wchar_t* __cdecl _wcsupr (wchar_t*); #ifdef __MSVCRT__ _CRTIMP int __cdecl _wcsncoll(const wchar_t*, const wchar_t*, size_t); _CRTIMP int __cdecl _wcsnicoll(const wchar_t*, const wchar_t*, size_t); #if __MSVCRT_VERSION__ >= 0x0700 _CRTIMP wchar_t* __cdecl _wcserror(int); _CRTIMP wchar_t* __cdecl __wcserror(const wchar_t*); #endif #endif #ifndef _NO_OLDNAMES /* NOTE: There is no _wcscmpi, but this is for compatibility. */ int __cdecl wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2); __CRT_INLINE int __cdecl wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2) {return _wcsicmp (__ws1, __ws2);} _CRTIMP wchar_t* __cdecl wcsdup (const wchar_t*); _CRTIMP int __cdecl wcsicmp (const wchar_t*, const wchar_t*); _CRTIMP int __cdecl wcsicoll (const wchar_t*, const wchar_t*); _CRTIMP wchar_t* __cdecl wcslwr (wchar_t*); _CRTIMP int __cdecl wcsnicmp (const wchar_t*, const wchar_t*, size_t); _CRTIMP wchar_t* __cdecl wcsnset (wchar_t*, wchar_t, size_t); _CRTIMP wchar_t* __cdecl wcsrev (wchar_t*); _CRTIMP wchar_t* __cdecl wcsset (wchar_t*, wchar_t); _CRTIMP wchar_t* __cdecl wcsupr (wchar_t*); #endif /* Not _NO_OLDNAMES */ #endif /* Not strict ANSI */ #define _WSTRING_DEFINED #endif /* _WSTRING_DEFINED */ #ifdef __cplusplus } #endif #endif /* Not RC_INVOKED */ #endif /* Not _STRING_H_ */ |