Bonsoir à tous,

Mon programme demande bien le mot à rentrer, vérifie bien le nombre de caractère mais ensuite m'affiche les printf() et termine sont exécution. Je ne peut pas rentrer le caractère que je veut qu'il recherche.

Je pense que c'est à cause des printf() et scanf() qui s'enchaîne car si je sépare mon code et que je laisse que la partie "demande de caractère" et "recherche de ce caractère" dans le mot sa fonctionne très bien.

J'ai essayé également de vider le buffer du clavier mais je me retrouve toujours avec le même problème.

Si vous pouvez m'aider je vous en remercie d'avance.

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
#include <stdio.h>
#include <stdlib.h>
 
int LongueurChaine(char Mot[], int TailleMot);
int OccurenceCar(char Mot[], int TailleMot, char var);
 
int main()
{
        char Mot[100];
        char var = 'c';
        int TailleMot=7;
 
        printf("\nEntrer un mot de sept caractere max : ");
        scanf("%s", Mot);
 
                if(LongueurChaine(Mot, TailleMot) <= TailleMot)
                        printf("\nLe mot est compose de %d caracteres.\n\n", LongueurChaine(Mot, TailleMot));
 
                else
                        printf("\nLe mot saisi est trop long :-( !!! Mais passons pour cette fois ;-)\n\n");
 
        printf("Caractere a compter dans la partie utile du mot ? ");
        scanf("%c", &var);
 
        printf("\n\nLe caractere %c s'y trouve %d fois dans le mot.\n\n", var, OccurenceCar(Mot, TailleMot, var));
 
        return 0;
}
 
int LongueurChaine(char Mot[], int TailleMot)
{
        int i;
 
        for(i=0; Mot[i]!='\0'; i++){}
 
        return (i);
}
 
int OccurenceCar(char Mot[], int TailleMot, char var)
{
        int i, compteur = 0;
 
        for(i=0; i <= TailleMot; i++)
        {
                if(var==Mot[i])
                        compteur++;
        }
       return (compteur);
}