# C++ Programming/Code/Standard C Library
## Standard C Library

The C standard library is the C language standardized collection of header files and library routines used to implement common operations, such as input/output and string handling. It became part of the C++ Standard Library as the Standard C Library in its ANSI C 89 form with some small modifications to make it work better with the C++ Standard Library but remaining outside of the std namespace. Header files in the C++ Standard Library do not end in ".h". However, the C++ Standard Library includes 18 header files from the C Standard Library, with ".h" endings. Their use is deprecated (ISO/IEC 14882:2003(E) Programming Languages — C++).
For a more in depth look into the C programming language check the C Programming Wikibook but be aware of the incompatibilities we have already covered on the Comparing C++ with C Section of this book.

#### All Standard C Library Functions

| Functions | Descriptions |
| abort | The abort function causes abnormal process termination to occur, unless the signal SIGABRT is being caught and the signal handler does not return |
| abs | absolute value without minus |
| acos | arc cosine |
| asctime | a textual version of the time |
| asin | arc sine |
| assert | stops the program if an expression isn't true |
| atan | arc tangent |
| atan2 | arc tangent, using signs to determine quadrants |
| atexit | sets a function to be called when the program exits |
| atof | converts a string to a double |
| atoi | converts a string to an integer |
| atol | converts a string to a long |
| bsearch | perform a binary search |
| calloc | allocates and clears a two-dimensional chunk of memory |
| ceil | the smallest integer not less than a certain value |
| clearerr | clears errors |
| clock | returns the amount of time that the program has been running |
| cos | cosine |
| cosh | hyperbolic cosine |
| ctime | returns a specifically formatted version of the time |
| difftime | the difference between two times |
| div | returns the quotient and remainder of a division |
| exit | stop the program |
| exp | returns "e" raised to a given power |
| fabs | absolute value for floating-point numbers |
| fclose | close a file |
| feof | true if at the end-of-file |
| ferror | checks for a file error |
| fflush | writes the contents of the output buffer |
| fgetc | get a character from a stream |
| fgetpos | get the file position indicator |
| fgets | get a string of characters from a stream |
| floor | returns the largest integer not greater than a given value |
| fmod | returns the remainder of a division |
| fopen | open a file |
| fprintf | print formatted output to a file |
| fputc | write a character to a file |
| fputs | write a string to a file |
| fread | read from a file |
| free | returns previously allocated memory to the operating system |
| freopen | open an existing stream with a different name |
| frexp | decomposes a number into scientific notation |
| fscanf | read formatted input from a file |
| fseek | move to a specific location in a file |
| fsetpos | move to a specific location in a file |
| ftell | returns the current file position indicator |
| fwrite | write to a file |
| getc | read a character from a file |
| getchar | read a character from STDIN |
| getenv | get environment information about a variable |
| gets | read a string from STDIN |
| gmtime | returns a pointer to the current Greenwich Mean Time |
| isalnum | true if a character is alphanumeric |
| isalpha | true if a character is alphabetic |
| iscntrl | true if a character is a control character |
| isdigit | true if a character is a digit |
| isgraph | true if a character is a graphical character |
| islower | true if a character is lowercase |
| isprint | true if a character is a printing character |
| ispunct | true if a character is punctuation |
| isspace | true if a character is a space character |
| isupper | true if a character is an uppercase character |
| itoa | Convert a integer to a string |
| isxdigit | true if a character is a hexadecimal character |
| labs | absolute value for long integers |
| ldexp | computes a number in scientific notation |
| ldiv | returns the quotient and remainder of a division, in long integer form |
| localtime | returns a pointer to the current time |
| log | natural logarithm |
| log10 | natural logarithm, in base 10 |
| longjmp | start execution at a certain point in the program |
| malloc | allocates memory |
| memchr | searches an array for the first occurrence of a character |
| memcmp | compares two buffers |
| memcpy | copies one buffer to another |
| memmove | moves one buffer to another |
| memset | fills a buffer with a character |
| mktime | returns the calendar version of a given time |
| modf | decomposes a number into integer and fractional parts |
| perror | displays a string version of the current error to STDERR |
| pow | returns a given number raised to another number |
| printf | write formatted output to STDOUT |
| putc | write a character to a stream |
| putchar | write a character to STDOUT |
| puts | write a string to STDOUT |
| qsort | perform a quicksort. |
| raise | send a signal to the program |
| rand | returns a pseudo-random number |
| realloc | changes the size of previously allocated memory |
| remove | erase a file |
| rename | rename a file |
| rewind | move the file position indicator to the beginning of a file |
| scanf | read formatted input from STDIN |
| setbuf | set the buffer for a specific stream |
| setjmp | set execution to start at a certain point |
| setlocale | sets the current locale |
| setvbuf | set the buffer and size for a specific stream |
| signal | register a function as a signal handler |
| sin | sine |
| sinh | hyperbolic sine |
| sprintf | write formatted output to a buffer |
| sqrt | square root |
| srand | initialize the random number generator |
| sscanf | read formatted input from a buffer |
| strcat | concatenates two strings |
| strchr | finds the first occurrence of a character in a string |
| strcmp | compares two strings |
| strcoll | compares two strings in accordance to the current locale |
| strcpy | copies one string to another |
| strcspn | searches one string for any characters in another |
| strerror | returns a text version of a given error code |
| strftime | returns individual elements of the date and time |
| strlen | returns the length of a given string |
| strncat | concatenates a certain amount of characters of two strings |
| strncmp | compares a certain amount of characters of two strings |
| strncpy | copies a certain amount of characters from one string to another |
| strpbrk | finds the first location of any character in one string, in another string |
| strrchr | finds the last occurrence of a character in a string |
| strspn | returns the length of a substring of characters of a string |
| strstr | finds the first occurrence of a substring of characters |
| strtod | converts a string to a double |
| strtok | finds the next token in a string |
| strtol | converts a string to a long |
| strtoul | converts a string to an unsigned long |
| strxfrm | converts a substring so that it can be used by string comparison functions |
| system | perform a system call |
| tan | tangent |
| tanh | hyperbolic tangent |
| time | returns the current calendar time of the system |
| tmpfile | return a pointer to a temporary file |
| tmpnam | return a unique filename |
| tolower | converts a character to lowercase |
| toupper | converts a character to uppercase |
| ungetc | puts a character back into a stream |
| va_arg | use variable length parameter lists |
| vprintf, vfprintf, and vsprintf | write formatted output with variable argument lists |
| vscanf, vfscanf, and vsscanf | read formatted input with variable argument lists |
These routines included on the Standard C Library can be sub divided into:
* Standard C I/O
* Standard C String & Character
* Standard C Math
* Standard C Time & Date
* Standard C Memory
* Other Standard C functions