Ciao a tutti, innanzitutto mi scuso se non è la sezione giusta.
Sono un principiante e stavo provando a fare un programmino che ritorni il numero di parole in una stringa, utilizzando array + funzioni con le quali mi trovo sempre in difficoltà.
Vi chiedo se possibile di spiegarmi perchè non funziona come l'ho fatto, e magari di spiegarmi accorgimenti per migliorare il programma, l'ordine etc.. 
codice:
#include <cstdlib>
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
char stringarray[100];
std::string inputstr;
int count_words(char stringarray[100]);
int numpar;
int main()
{
std::cout << "Scrivi frase: ";
std::getline(std::cin, inputstr);
std::strcpy(stringarray, inputstr.c_str());
numpar = count_words(stringarray);
cout << "Numero parole: " << numpar;
return(0);
}
int count_words(char str[100]){
int num;
for (int i=0; str[i]=='\0'; i++){
if (str[i] == ' ' || str[i] == '\0')
num++;
}
return(num);
}
Grazie mille, Luca.