Tutorial
PROGRAMING IN C
A Simple C program
#include <stdio.h> int main( ) { printf("hello, world"); return 0; }
Variables; Types and Type Declarations
#include<stdio.h> int main( ) { int a, b, c, sum; a = 1; b = 2; c = 3; sum = a + b + c; printf("sum is %d", sum); return 0; }
Variables; Types and Type Declarations
Simple I/O getchar(), putchar(), printf ()
int main( ) {
char c; c = getchar( ); putchar(c); getchar();
} printf("hello, world");
printf("sum is %d", sum);
Simple I/O getchar(), putchar(), printf ()
n = 511; printf("What is the value of %d in octal?", n); printf("%s! %d decimal is %o octal\n", "Right", n, n);
What is the value of 511 in octal? Right! 511 decimal is 777 octal
If - relational operators and compound statements
if (expression) statement
== equal to != not equal to > greater than < less than >= greater than or equal to <= less than or equal to
If - relational operators and compound statements
C guarantees that `&&' and `||' are evaluated left to right -we shall soon see cases where this matters.
if( c==' ' || c=='\t' || c=='\n' ) ... Grouped together by {} if (a < b) { t = a; a = b; b = t; }
Else Clause; Conditional Expressions
if (expression) statement1 else statement2
if (a < b) x = a; else x = b; expr1 ? expr2 : expr3 a<b ? a : b; x = (a<b ? a : b);
a common programming structure
if(...)
{...} else if(...) {...} else if(...) {...} else {...}
The Switch Statement ; Break ; Continue
switch( c ) { case 'a': aflag++; break; case 'b': bflag++; break; case 'c': cflag++; break; default: printf("%c?\n", c); break; }
While Statement; Assignment within an Expression; Null Statement
while (expression) statement
int main( ) { char c; while( (c=getchar( )) != '\0' ) putchar(c); return 0; }
for Statement
for( initialization; expression; increment ) statement
initialization; while( expression ) { statement increment; }
for Statement
sum = 0;
for( i=0; i<n; i++)sum = sum + i;
for( ; ; ) ... while( 1 ) ...
for( i=0; i<n; i++ ) for( j=0; j<m; j++ ) array[i][j] = 0;
Arithmetic
x = a%b;
c = c + 'A' - 'a';
main( ) { char c; while( (c=getchar( )) != '\0' ) if( 'A'<=c && c<='Z' ) putchar(c+'a'-'A'); else putchar(c); }
Increment and Decrement Operators
int k=5; x = ++k; x = k++; main( ) { int c,n; n = 0; while( (c=getchar( )) != '\0' ) if( c == '\n' ) ++n; printf("%d lines\n", n); }
Arrays
int x[10]; x[0], x[1], x[2], ..., x[9]
main( ) { int n, c; char line[100]; n = 0; while( (c=getchar( )) != '\n' ) { if( n < 100 ) line[n] = c; n++; } printf("length = %d\n", n); }
Character Arrays; Strings
We can copy a character array s into another t like this: main( ) { int n; char line[100]; n = 0; while( (line[n++]=getchar( )) != '\n' ); line[n] = '\0'; printf("%d:\t%s", n, line); }
Example to count letters, digits and others in a file
main( ) { int let, dig, other, c; let = dig = other = 0; while( (c=getchar( )) != '\0' ) if( ('A'<=c && c<='Z') || ('a'<=c && c<='z') ) ++let; else if( '0'<=c && c<='9' ) ++dig; else ++other;
printf("%d letters, %d digits, %d others\n", let, dig, other);