Bonjour moi c'est valeron je suis débutant en C et je dois résoudre un problème càd qu'on me demande d'écrire un programme qui conjuge un verbe à l'imparfait du subjonctif .
J'ai donc réalisé un algo pour récupérer la racine du verbe :

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
 
#include <stdio.h>
#include <stdlib.h>
 
char c[], r[100];
 
int main()
{
    int i, j;
    printf("Entrez votre verbe au choix\n");
    scanf("%s", c);
    i = strlen(c);
    printf("%d\n", i);
    j = i - 2;
    do
    {
        c[j] = '\0';
        j = j - 1;
    }
    while (j < i - 4);
    strcpy(r, c);
    printf("%s", r);
    return 0;
}
Mon soucis c'est qu'au débat j'ai initialisé j à i-1 et la condition de sortie était j<i-3 et quand je test avec le verbe manger j'obtient "mange" mais avec j à i-2 et la condition de sortie à j <i-4 je trouve bien "mang" ?
j'aimerais donc connaître la raison sachant que strlen retourne juste le nombre de caractères de c sans tenir compte de la fin de chaîne.

Excusez-moi d'avoir été long et merci d'avance pour votre aide.