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;
}