Voila le code :
Ce code se compile et s’exécute sans problème.
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; }
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.
Partager