C Very Quick Reference


* Console I/O -- #include <stdio.h>:
   int printf( char *s, <varlist> ) > 0;     Print formatted string to stdout.
   int scanf( char *s, *<varlist> ) != EOF:  Read formatted data from stdin.
   int putchar( int ch ):                    Print a character to stdout.
   int getchar() != EOF:                     Read a character from stdin.
   int puts( char *s ):                      Print string to stdout, add \n.
   char *gets() != NULL:                     Read line from stdin (no \n).
* PC console routines -- #include <conio.h>:
   int getch() != 0:          Get a character from the keyboard (no Enter).
   int getche() != 0:         Get a character from the keyboard and echo it.
   int kbhit() != 0:          Check to see if a key has been pressed.
* Format codes:
   %h:      short int (scanf() only)
   %d:      decimal integer
   %ld:     long decimal integer
   %c:      character
   %s:      string
   %e:      exponential floating-point
   %f:      decimal floating-point
   %g:      use %e or %f, whichever is shorter (printf() only)
   %u:      unsigned decimal integer
   %o:      unsigned octal integer
   %x:      unsigned hex integer 

   %10d:    10-character field width.
   %-10d    Left-justified field.
   %6.3f    6-character field width, three digits of precision.

   '\0NN':  character code in octal.
   '\xNN':  character code in hex.
   '\0':    null character.
* File-I/O -- #include <stdio.h>:
   FILE *fopen( char *f, char *mode ) != NULL;          Create or open file.
   int fclose( FILE *f );                               Close a file.

   rewind( FILE *f );                                   Rewind.
   rename( char *old, char *new );                      Rename a file.
   remove( char *name );                                Delete a file.

   fseek( FILE *f, long offset, int origin) == 0;       Seek.

   fprintf( FILE *f, char *fmt, <varlist> ) > 0;        Formatted write.
   fscanf( FILE *f, char *fmt, &<varlist> ) != EOF;     Formatted read.
   fwrite( void *b, size_t s, size_t c, FILE *f ) > 0;  Unformatted write.
   fread( void *b, size_t s, size_t c, FILE *f ) > 0;   Unformatted read.

   putc( int c, FILE *f );                              Write character.
   int getc( FILE *f ) != EOF;                          Read character.
   fputs( char *s, FILE *f );                           Write a string.
   fgets( char *s, int max, FILE *f) != NULL;           Read a string.

   sprintf( char *b, char *fmt, <varlist> );            Print into string.
   sscanf( char *b, char *fmt, &<varlist> ) > 0;        Scan string.
* File modes:
   r:    Open for reading.
   w:    Open and wipe (or create) for writing.
   a:    Append -- open (or create) to write to end of file.
   r+:   Open a file for reading and writing.
   w+:   Open and wipe (or create) for reading and writing.
   a+:   Open a file for reading and appending.
* Offset values:
   SEEK_SET:   Start of file.
   SEEK_CUR:   Current location.
   SEEK_END:   End of file.
* Math library -- #include <math.h>:
   double sin( double x ):            Sine of x (in radians).
   double cos( double x ):            Cosine of x.
   double tan( double x ):            Tangent of x.
   double asin( double x ):           Inverse sine of x.
   double acos( double x ):           Inverse cosine of x.
   double atan( double x ):           Inverse tangent of x.
   double sinh( double x ):           Hyperbolic sine of x.
   double cosh( double x ):           Hyperbolic cosine of x.
   double tanh( double x ):           Hyperbolic tangent of x.
   double exp( double x ):            Exponential function -- e^x.
   double log( double x ):            Natural log of x.
   double log10( double x ):          Base 10 log of x.
   double pow( double x, double y ):  Power function -- x^y.
   double sqrt( double x ):           Square root of x.
   double ceil( double x ):           Integer >= x (returned as double).
   double floor( double x ):          Integer <= x (returned as double).
   double fabs( x ):                  Absolute value of x.
* Standard utility library -- #include <stdlib.h>:
   double atof( char *nvalstr ) != 0;  Convert numeric string to double.
   int atoi( char *nvalstr )    != 0;  Convert numeric string to int.
   long atol( char *nvlastr )   != 0;  Convert numeric string to long.
   int rand();                         Generates pseudorandom integer.
   srand( unsigned seed );             Seed random-number generator.
   exit( int status );                 Exits program.
   int system( char *syscmd )   == 0;  Execute system program.
   int abs( int n );                   Absolute value of int.
   long labs( long n );                Absolute value of long.
* Time & date library -- #include <time.h>:
   time_t time( time_t *timeptr );     Current time count as long int.
   char *ctime( time_t *timeptr );     Current time & date string.
* String function library -- #include <string.h>:
   int strlen( char *s );                          Length.
   strcpy( char *dst, char *src );                 Copy.
   strncpy( char *dst, char *src, size_t n );      Copy n characters max.
   strcat( char *dst, char *s );                   Concatenate.
   strncat( char *d, char *s, size_t n );          Concatenate n characters.
   strcmp( char *s1, char *s2 )             == 0:  Compare.
   strncmp( char *s1, char *s2, size_t n )  == 0;  Compare n characters.
   strcasecmp( char *s1, char *s2 )         == 0;  Compare, no case.
   strncasecmp( char *s1, char *s2, size_t n )== 0;Compare, no case, n chars.
   char *strchr( char *s, int ch )       != NULL;  Find first character.
   char *strrchr( char *s, int ch )      != NULL;  Find last character.
   char *strstr( char *dst, char *src)   != NULL;  Find string.
   char *strlwr( char *s );                        Lowercase.
   char *strupr( char *s );                        Uppercase.
* Character class test library -- #include <ctype.h>:
   int isalnum( int c )  != 0;        Alpha / digit.
   int isalpha( int c )  != 0;        Alpha.
   int iscntrl( int c )  != 0;        Control character.
   int isdigit( int c )  != 0;        Decimal digit.
   int isgraph( int c )  != 0;        Printing character (except space).
   int islower( int c )  != 0;        Lower-case.
   int isprint( int c )  != 0;        Printing character (including space).
   int ispunct( int c )  != 0;        Printing character but not space/alnum.
   int isspace( int c )  != 0;        Space, FF, LF, CR, HT, VT.
   int isupper( int c )  != 0;        Upper-case.
   int isxdigit( int c ) != 0;        Hex digit.

   int tolower( int c );              Convert to lower case.
   int toupper( int c );              Convert to upper case.
* Dynamic memory allocation -- #include <malloc.h>:
   buf = (<type> *)malloc( (size_t)sizeof( <type> ) * <array size>) != NULL;
   free( <type> *buf );