#include <stdio.h>
void AlteraStr(char prim[], char seg[]);
main(){
  /* testes com strings e apontadores para string - 1998 */
  char car,                    /*   */
       *apc,                   /*   */
       *apnome[10],            /*   */
       Nome1[100], Nome2[100]; /*   */
  apc="Silveira";                 /* apc == ender de 'S' de "Silveira"  */
  printf("1 %c \n", *(apc+1) );   /* imprime 'i' de "Silveira"  */
  car = *(apc+1);                 /* car == 'i' */
  printf("2 %c \n", car );        /* imprime 'i' de "Silveira"  */
  apc="Saturno";
  printf("3 %s \n", apc);          
  printf("4 %c \n", *(apc+2) ); 
  apc="Netuno";   
  printf("5 %s \n", apc);

  apnome[0]= "Oliveira";
  apnome[1]= "Marte";
  printf("6.1 %s \n", apnome[0] );
  printf("6.2 %s \n", apnome[1] );
  printf("7 %c \n", *(apnome[0]+3) );
  car = *(apnome[0]);
  printf("8 %c \n", car );

  apc=apnome[0];
  apnome[0]=apnome[1];
  apnome[1]=apc;
  printf("9.1 %s \n", apnome[0] );
  printf("9.2 %s \n", apnome[1] );

  Nome1[0]='T'; Nome1[1]='e'; Nome1[2]='r'; Nome1[3]='r'; Nome1[4]= 'a';
  Nome1[5]= '\0';
  AlteraStr(Nome1, Nome2);
  printf("10 Nome1 = %s \n", Nome1 );
  printf("11 Nome2 = %s \n", Nome2 );

  AlteraStr(apnome[0] , Nome2 );
  printf("12.1 %s \n", apnome[0] );

  printf("13 %c \n", ('b'+3) );

}

void AlteraStr(char prim[], char seg[]){
int i, j;

printf("*** Dentro do AlteraStr: 1 prim = %s \n", prim );
prim="!Alterou so' dentro da fun. AlteraStr!";
printf("*** Dentro do AlteraStr: 2 prim = %s \n", prim );
printf("*** Dentro do AlteraStr: 3 prim = %c%c \n", prim[0], prim[1]);

/* Nao pode efetuar: prim[0]='Z'; */

seg[0]='J'; seg[1]='u'; seg[2]='p'; seg[3]='i'; seg[4]='t';
seg[5]='e'; seg[6]='r'; 

for(i=0;i<30;i++){
  seg[i+7]=prim[i];
  }
seg[i+7]='\0';
} /* fim AlteraStr */