/* File: strequal.c */
/* Time-stamp: "2001-04-22 00:47:53 calvanes" */
/* Scopo: esempio di uso di stringhe */

/* Legge due stringhe di lunghezza DIM e verifica se sono uguali.  Le tre
   funzioni uguali1, uguali2, uguali3 illustrano metodi diversi per verificare
   l'uguaglianza tra due stringhe. */

#include <stdio.h>

#define DIM 80

int uguali1(char * str1, char * str2)
  /* Restituisce 1 se le due stringhe str1 e str2 sono uguali, 0 altrimenti. */
{
  int i = 0;

  while (str1[i] == str2[i] && str1[i] != '\0' && str2[i] != '\0')
    i++;

  return str1[i] == '\0' && str2[i] == '\0';
}


int uguali2(char * str1, char * str2)
  /* Restituisce 1 se le due stringhe str1 e str2 sono uguali, 0 altrimenti.
     Versione con puntatori. */
{
  while (*str1 == *str2 && *str1 != '\0' && *str2 != '\0') {
    str1++;
    str2++;
  }

  return *str1 == '\0' && *str2 == '\0';
}


int main(void) {

  char s1[DIM];
  char s2[DIM];

  /* leggi le due stringhe */
  printf("Inserisci la prima stringa  :\n");
  scanf("%s", s2);
  printf("Inserisci la seconda stringa:\n");
  scanf("%s", s1);

  printf("Le due stringhe sono ");
  /* if (uguali1(s1, s2)) */
  if (uguali2(s1, s2))
    printf("uguali\n");
  else
    printf("diverse\n");

  return 0;
}