Différence entre strlen () et sizeof () pour la chaîne en C

Table des matières:

Anonim

Qu'est-ce que strlen ()

strlen () est une fonction pour trouver la longueur d'une chaîne. Il compte le nombre total de caractères présentés dans une chaîne, éliminant le caractère nul. Le nombre total de caractères dans la chaîne comprend les alphabets, les caractères spéciaux et les nombres, avec des espaces vides.

Dans cette différence entre strlen () et sizeof () pour la chaîne dans le didacticiel C, vous apprendrez:

  • Qu'est-ce que strlen ()
  • Qu'est-ce que sizeof ()
  • Syntaxe de strlen ()
  • Syntaxe de sizeof ()
  • Différence entre strlen () et sizeof ()

Qu'est-ce que sizeof ()

Sizeof () est une fonction utilisée pour calculer la taille de son opérande. Il renvoie la taille d'une variable particulière. Cette fonction peut être appliquée à n'importe quel type de données, contenant des types primitifs tels que des types entier et pointeur, des types à virgule flottante, une structure ou une union. La sortie du programme contenant sizeof () peut être différente sur le système 32 bits et le système 64 bits.

DIFFÉRENCES CLÉS:

  • La méthode Strlen est utilisée pour trouver la longueur d'un tableau tandis que la méthode sizeof () est utilisée pour trouver la taille réelle des données.
  • Strlen () compte le nombre de caractères dans une chaîne tandis que sizeof () renvoie la taille d'un opérande.
  • Strlen () recherche la valeur nulle de la variable mais sizeof () ne se soucie pas de la valeur de la variable.
  • La valeur de retour dans strlen () est long int, tandis que la valeur de retour dans sizeof () est un int non signé.

Syntaxe de strlen ()

strcount = strlen(my_string);

Ici, my_string est une variable de tableau de caractères.

Exemple de strlen ()

Dans le programme C ci-dessous, nous avons déclaré une variable chaîne de type char. La variable Strng est passée comme argument de la fonction strlen () pour trouver la longueur de la chaîne.

#include#includeint main(){char strng[] = "January";printf("Length of given string is: %lu\n", strlen(strng));}

Production:

Length of given string is: 7

Syntaxe de sizeof ()

Syntaxe 1)

sizeof (type): Type = type référencé

Exemple de sizeof (type):

Dans le code ci-dessous, & type donne l'adresse de la variable (double x). Il est incrémenté de 1 ce qui donne l'adresse où vous pouvez stocker la variable suivante de type x.

Taper x en char * et prendre la différence vous permettra de connaître le nombre total de variables de type char stockées en mémoire. Nous avons utilisé getchar () pour lire le caractère.

#include#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)int main(){double x;printf("%ld", my_sizeof(x));getchar();return 0;}

production:

8

Syntaxe 2)

sizeof (nom-variable): nom-variable = nom de la variable dont vous souhaitez déterminer la taille.

Dans le programme C ci-dessous, nous imprimons le type de données size char. L'instruction Printf contient la fonction sizeof avec l'argument char.

Exemple de sizeof (nom-variable):

#includeint main(){printf("sizeof(char) = %d\n\n", sizeof(char));return 0;}

Production:

sizeof(char) = 1

Syntaxe 3)

sizeof (expression): Expression = Expression que vous devez évaluer.

Exemple de sizeof (expression):

Dans le programme ci-dessous, nous calculons et imprimons d'abord la taille de la variable. Après cela, nous évaluons l'expression, la stockons dans la variable a et affichons le résultat dans l'instruction printf.

#includeint main() {char p = 'S';double q = 4.65;printf("Size of variable p : %d\n",sizeof(p));printf("Size of an expression : %d\n",sizeof(p+q));int a = (int)(p+q);printf("Size of explicitly converted expression : %d\n",sizeof(a));return 0;}

Production:

Size of variable p : 1Size of an expression : 8Size of explicitly converted expression : 4

Différence entre strlen () et sizeof ()

Voici les différences importantes entre strlen () et sizeof ():

Strlen () Taille de()
Strlen () est une fonction prédéfinie, qui est définie dans un fichier d'en-tête appelé string.h. Sizeof () est un opérateur unaire ou une expression au moment de la compilation qui calcule la quantité de mémoire occupée par une variable.
Cette méthode est utilisée pour trouver la longueur d'un tableau de chaînes ou de caractères. Cette méthode est utilisée pour trouver la taille réelle des données (allouées) en octets.
Il compte le nombre de caractères dans une chaîne en éliminant les valeurs nulles. Il renvoie la taille d'un opérande, pas la longueur de la chaîne (y compris les valeurs nulles).
Il alloue de la mémoire au moment de l'exécution et recherche la valeur nulle de variable. Sizeof () ne se soucie pas de la valeur de la variable.
La fonction Strlen () ne fonctionne qu'avec les chaînes de caractères La fonction Sizeof () renvoie la quantité de mémoire allouée en octets.
La valeur de retour dans strlen () est long int. La valeur de retour dans sizeof () est un int non signé.
Il n'y a qu'une seule syntaxe de strlen () qui est int strlen (const char * str); Il existe trois syntaxes: sizeof () 1) sizeof (type), 2) sizeof (variable-name) et 3) sizeof (expression):