// Programación en C++ para Ingenieros, Ed. Thomson Paraninfo, 2006
// Capitulo 6: Tipos Estructurados

// Programa que dada una frase acabada en punto '.',
// con palabras de como máximo N caracteres,
// escriba cuántas veces aparece la primera palabra.

#include <iostream>
#include <string>

using namespace std;

// Declaración de constantes
const int N = 15;

// Programa principal
int main()
{
  // Declaracion de variables
  char pal[N+1], paux[N+1]; // Primera palabra, y palabra en curso
  int i, n;                 // Numero de veces que aparece la primera palabra,
                            // y longitud de la primera palabra

  // Leemos la primera palabra
  // (si previamente hay espacios en blanco no se tienen en cuenta)
  cout << "Escribe una frase acabada en punto:" << endl;
  cin >> pal;
  strcpy(paux, pal);

  // Numero de veces que aparece la primera palabra
  n = 0;
  // Leemos y comparamos palabras mientras no estemos ante la última palabra
  i = strlen(paux);
  while ( paux[i-1] != '.' )
  {
    if ( strcmp(paux, pal) == 0 ) n = n + 1;
    cin >> paux;
    i = strlen(paux);
  }

  // Comparamos la última palabra sin el punto '.'
  paux[i-1] = '\0';
  if ( strcmp(paux, pal) == 0 ) n = n + 1;

  cout << "La primera palabra aparece " << n << " vez/veces." << endl ;

  return 0;
}