Bonsoir,

En travaillant sur ce problème qui doit comporte des fonctions de saisie d'une chaine, puis de calcul de l'occ du char c puis d'inverser la chaine mais le programme n"execute pas la fonction inverser et je sais pas pourquoi ou comment le resoudre. de l'aide svp!

Voici 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
 
#include <stdio.h>
#include <stdlib.h>
 
 
/*probleme*/
 
/*saisir*/
char* saisir() {
    int n;
    char* ch;
    printf("saisir la taille de ch:\n");
    scanf("%d", &n);
    printf("saisir votre chaine\n");
    ch = (char*) malloc(n * sizeof(char));
    _flushall();
    gets(ch);
    return (ch);
}
 
/*occ*/
 
int occurance(char* ch) {
    int i;
    int occ = 0;
    for (i = 0; i < strlen(ch); i++) {
        if (ch[i] == 'c')
            occ = occ + 1;
 
    }
    return (occ);
}
 
/*fonction inverse*/
 
char* inverse(char* ch) {
    return (strrev(ch));
}
 
/*programme principal*/
int main() {
    char* ch;
    int occ;
 
    printf("le nb d'occ de char 'c' dans ch =%d\n", occurance(saisir()));
 
    printf("la chaine inversée =%s\n", inverse(ch));
 
    return 0;
}