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 | stops the program | 
| 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