Voila le 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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
#include <stdio.h>
 
int stringLen(char *str);
int getStr(char str[], int strLen);
 
int main(void)
{
	char sentence[80];
	int nbrechar, nbrechar_no_space, i;
	printf("veuillez saisir une phrase: ");
	nbrechar = getStr(sentence, 80);
	nbrechar_no_space = stringLen(sentence);
	printf("votre phrase contient %d caracteres. sans compter les espaces elle contient %d caracteres\n", nbrechar, nbrechar_no_space);
 
	printf("\"");
	for(i = 0; sentence[i] != '\0'; i++)
	{
		if(sentence[i] == ' ')
			sentence[i] = '*';
		printf("%c", sentence[i]);
	}
	printf("\"");
	return 0;
}
 
int stringLen(char *str)
{
	int i = 0, count = 0;
	while(str[i++])
	{
		if(str[i] == ' ')
			continue;
		count++;
	}
	return count;
}
 
int getStr(char str[], int strLen)
{
	int i = 0;
	while((str[i] = getchar()) != '\n')
		if(++i > strLen - 1)
		{
			--i;
			while(getchar() != '\n');
			break;
		}
	str[i] = '\0';
	return i;
}
Ce code se compile et s’exécute sans problème.
Mais malheureusement, la fonction stringLen ne donne pas le nombre de caractères exact (sans compter les espaces) lorque la phrase commence, au moins, par une espace.

Nom : screen1.jpg
Affichages : 363
Taille : 20,0 Ko