< A Little C Primer 
 
        
      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 simply provides reminders. If more details are needed, 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. */
   void 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 ) 
    This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.