86 votes

Trouver la longueur d'un tableau de caractères en C

Comment en C quelqu'un pourrait-il trouver la longueur d'un tableau de caractères ?

J'accepterai volontiers le pseudo-code, mais je ne suis pas opposé à ce que quelqu'un l'écrive s'il le souhaite :)

113voto

Daniel A. White Points 91889

À condition que le tableau de caractères soit terminé à null

 char chararray[10] = { 0 };
size_t len = strlen(chararray);

16voto

SteveMoros Points 141

Bien que les réponses précédentes soient correctes, voici ma contribution.

 //returns the size of a character array using a pointer to the first element of the character array
int size(char *ptr)
{
    //variable used to access the subsequent array elements.
    int offset = 0;
    //variable that counts the number of elements in your array
    int count = 0;

    //While loop that tests whether the end of the array has been reached
    while (*(ptr + offset) != '\0')
    {
        //increment the count variable
        ++count;
        //advance to the next element of the array
        ++offset;
    }
    //return the size of the array
    return count;
}

Dans votre fonction principale, vous appelez la fonction size en passant l'adresse du premier élément de votre tableau.

Par example:

 char myArray[] = {'h', 'e', 'l', 'l', 'o'};
printf("The size of my character array is: %d\n", size(&myArray[0]));

8voto

dco Points 307

Vous pouvez utiliser strlen

 strlen(urarray);

Vous pouvez le coder vous-même pour comprendre comment cela fonctionne

 size_t my_strlen(const char *str)
{
  size_t i;

  for (i = 0; str[i]; i++);
  return i;
}

si vous voulez la taille du tableau, vous utilisez sizeof

 char urarray[255];
printf("%zu", sizeof(urarray));

7voto

onemasse Points 2851

Si vous voulez la longueur du tableau de caractères, utilisez sizeof(array)/sizeof(array[0]) , si vous voulez la longueur de la chaîne, utilisez strlen(array) .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X