Bonjour à tous,

Je débute en C, et je souhaiterai faire une fonction qui compte le nombre de mots compris dans une chaine de caractères.
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int nbMots(char *chaine){
	int n=0;
	while(*(chaine++)){
		while(*chaine==' '){
			chaine++;
		}
		if(*(chaine)!=' '){
			n++;
			while(*(chaine)!=' '){
				chaine++;
			}
		}
	}
	return n;
}
Que j'appelle grâce à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
char *ch11=strdup("Bonjour comment ca va ?");
printf("%d\n",nbMots(ch11));
Malheureusement, et vous le devinez bien, c'est pour ça que je demande votre aide, cette fonction ne marche pas. Voici ce qu'on me dit pour la valeur de chaine :
CXX0030 : erreur : impossible d'évaluer l'expression

Je ne sais pas du tout comment m'en sortir, toute aide est la bienvenue. Je suis sous Visual Studio 2010.
Je vous remercie.