Bonjour à tous,

J'essaie de connaître le nombre de caractères autres que '\0' d'un array de caractères rempli par l'utilisateur. L'idée est de parcourir cet array (compteur : 'i') et d'incrémenter un compteur représentant le nombre de ces éléments différents de '\0' (compteur : 'j') si et seulement si l'élément en cours est différent de '\0'.

A priori, ça devrait fonctionner ! Mais mon programme affiche toujours une taille de 10... Je vous montre le code :

Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
char chaine[10];
scanf("Tapez une chaîne de caractères : %s", chaine); // scanf va remplir chaine de l'élément n°0 à l'élément n°[taille-1 de la saisie] et placera un '\0' juste après ce dernier élément
 
    int j = 0; // représente le nombre d'éléments != '\0'
 
    int i = 0;
    while (i < sizeof(chaine)) {
        if (chaine[i] != '\0')
            j++;
 
        i++;
    }

Voilà.
Je ne comprends pas du tout pourquoi ça ne marche pas. Pourriez-vous m'aider svp ? :-/

Merci d'avance et bonne continuation