/* Program to illustrate various approaches for storing and accessing 
   strings in C */

#include <stdio.h>
#include <string.h>

int main (void) {
  char s[10] = "abcdefghi";
  char * a;
  char * b;
  char c[10];
  char * d;

  /* initialization */
  a = s;
  b = a;
  strcpy (c, "uvwxyz");
  d = c;

  /* print initial values */
  printf ("Initial values of variables\n");
  printf ("   s:  %s\n", s);
  printf ("   a:  %s\n", a);
  printf ("   b:  %s\n", b);
  printf ("   c:  %s\n", c);
  printf ("   d:  %s\n", d);

  /* modify positions in various string variables */
  s[3] = 'm';
  a[5] = 'p';
  b[7] = 'r';
  c[1] = 'k';
  d[3] = 'q';

  /* print after modifications */
  printf ("Values of variables after a and c changed\n");
  printf ("   s:  %s\n", s);
  printf ("   a:  %s\n", a);
  printf ("   b:  %s\n", b);
  printf ("   c:  %s\n", c);
  printf ("   d:  %s\n", d);

  return 0;

}

