Ciao a tutti, vorrei fare un programma che nel main acquisisce una stringa e in una funzione conta il numero di caratteri acquisiti e il numero di spazi nella stringa.
Il problema è che se la stringa è "ciao mi chiamo megaempire" il compilatore arriva al primo spazio e si ferma, conta 4 caratteri e 0 spazi.
Ho provato a fare il debug e quando arriva allo spazio dopo ciao il carattere è '\0' quindi è normale che esce ma perché c'è il carattere di fine stringa???
codice:
#include <stdio.h>
void genera(char s1[],int *a, int*b);
void main()
{
    char s[100];
    printf("Inserisci la frase che poi i giocatori andranno a cercare : ");
    scanf("%s",s);
    int i1 = 0;
    int spazi;
    genera(s,&i1,&spazi);
    printf("%d %d", i1,spazi);
}

void genera(char s1[],int *a, int*b)
{
    int agen = *a;
    int bgen = 0;
    while ( s1[agen] != '\0')
    {
        if (s1[agen] == ' ')
        {
            bgen ++;
        }
        agen++;
    }
    *a = agen;
    *b = bgen;
}