#include <stdio.h>
#include <string.h> // contient la déclaration de la fonction strlen()

// longueur maximale de la chaine saisie
#define LMAX 80

/* Déclaration de la fonction compte_espaces() :
Fonction qui compte et renvoie le nombre d'espaces présents dans la chaine de caractères str passée en paramètre*/
int compte_espaces(const char *str);


int main()
{
	char tab [LMAX + 1];// LMAX caractères + le caractère '\0'
	size_t lo ;
	
	printf("Saisir une chaine (longueur max %d) :\n", LMAX);
	
	// dans cet exercice, on est obligé d'utiliser la fonction fgets() pour saisir la chaine
	// car on souhaite saisir une chaine avec des espaces
	fgets(tab, LMAX+1, stdin);
	
	
	lo = strlen(tab);
	// pour supprimer le caractère '\n' ajouté par fgets() quand l'utilisateur saisit un nombre de caractères strictement inférieur à LMAX
	// même si dans cet exercice, ça ne sert à rien
	if (tab[lo -1] == '\n')
	{
		tab[lo -1] = '\0';
	}
	printf("\nChaine analysee :\n%s\n", tab);
	
	printf("\nNombre d'espaces : %d\n",compte_espaces(tab));
	
	return 0;
}




// le type du paramètre (const char *) interdit à la fonction de modifier les caractères de la chaîne reçue en paramètre 
int compte_espaces(const char *str)
{
	size_t l = strlen(str);
	int cpt = 0;
	for (size_t i = 0; i < l; ++i)
	{
		if (str[i] == ' ')
		{
			++cpt;
		}
	}
	return cpt;
}