User:Jimregan/C Primer chapter 7
Jump to navigation
Jump to search
C Quick Reference
[edit | edit source]This section contains a sample program to give syntax examples for fundamental C statements, followed by a list of library routines. This list is very terse and assumes that you are simply looking for reminders. If you need more details, please refer to the previous chapters.
/* sample.c: a silly program to give syntax examples. */
#include <stdio.h> /* Include header file for console I/O. */
int f1( int p ); /* Function prototypes. */ long f2( void ); long g; /* Global variable. */
int main( int argc, char *argv[] ) { float f; /* Declare variables. */ int ctr; extern long g;
printf( "Arguments:\n\n" ); for( ctr = 0; ctr < argc; ctr++ ) { puts( argv[ctr] ); }
printf( "\nFunction 1:\n\n" ); ctr = 0; while( ctr < 5 ) { printf( "%d\n", f1( ctr++ ) ); }
printf( "\nFunction 2:\n\n" ); ctr = 0; do { g = ctr++; printf( "%d\n", f2( ) ); } while( ctr < 5 );
exit( 0 ); }
int f1( int p ) { return( ( p < 3 ) ? p : p * p ); }
long f2( void ) { extern long g; return( g * g ); }
- 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. stricmp( char *s1, char *s2 ) == 0; Compare, no case. strnicmp( 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 );