Διαφορά μεταξύ strlen () και sizeof () για συμβολοσειρά σε C

Πίνακας περιεχομένων:

Anonim

Τι είναι το strlen ()

Το strlen () είναι μια συνάρτηση για να βρείτε το μήκος μιας συμβολοσειράς. Μετράει τους συνολικούς χαρακτήρες που παρουσιάζονται σε μια συμβολοσειρά, εξαλείφοντας τον μηδενικό χαρακτήρα. Ο συνολικός αριθμός χαρακτήρων στη συμβολοσειρά περιλαμβάνει, αλφάβητα, ειδικούς χαρακτήρες και αριθμούς, με κενά διαστήματα.

Σε αυτήν τη διαφορά μεταξύ strlen () και sizeof () για string στο C tutorial, θα μάθετε:

  • Τι είναι το strlen ()
  • Τι είναι το μέγεθος του ()
  • Σύνταξη του strlen ()
  • Σύνταξη του μεγέθους ()
  • Διαφορά μεταξύ strlen () και sizeof ()

Τι είναι το μέγεθος του ()

Το sizeof () είναι μια συνάρτηση που χρησιμοποιείται για τον υπολογισμό του μεγέθους του τελεστή του. Επιστρέφει το μέγεθος μιας συγκεκριμένης μεταβλητής. Αυτή η συνάρτηση μπορεί να εφαρμοστεί σε οποιονδήποτε τύπο δεδομένων, που περιέχει πρωτόγονους τύπους όπως ακέραιοι και δείκτες, τύποι κινητής υποδιαστολής, δομή ή ένωση. Η έξοδος του προγράμματος που περιέχει το sizeof () ενδέχεται να διαφέρει στο σύστημα 32-bit και στο σύστημα 64-bit.

ΒΑΣΙΚΕΣ ΔΙΑΦΟΡΕΣ:

  • Η μέθοδος Strlen χρησιμοποιείται για τον εντοπισμό του μήκους ενός πίνακα, ενώ η μέθοδος sizeof () χρησιμοποιείται για την εύρεση του πραγματικού μεγέθους των δεδομένων.
  • Το Strlen () μετρά τους αριθμούς των χαρακτήρων σε μια συμβολοσειρά, ενώ το sizeof () επιστρέφει το μέγεθος ενός τελεστή.
  • Το Strlen () αναζητά την τιμή null της μεταβλητής, αλλά το sizeof () δεν ενδιαφέρεται για τη μεταβλητή τιμή.
  • Η τιμή επιστροφής στο strlen () είναι μακρά int από την άλλη πλευρά η τιμή επιστροφής στο sizeof () είναι υπογεγραμμένη int.

Σύνταξη του strlen ()

strcount = strlen(my_string);

Εδώ, το my_string είναι μια μεταβλητή πίνακα χαρακτήρων.

Παράδειγμα strlen ()

Στο παρακάτω πρόγραμμα C, έχουμε δηλώσει τη μεταβλητή συμβολοσειράς του τύπου char. Η μεταβλητή Strng μεταδίδεται ως όρισμα της συνάρτησης strlen () για να βρείτε το μήκος της συμβολοσειράς.

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

Παραγωγή:

Length of given string is: 7

Σύνταξη του μεγέθους ()

Σύνταξη 1)

sizeof (type): Τύπος = τύπος αναφοράς

Παράδειγμα sizeof (τύπος):

Στον παρακάτω κώδικα, και ο τύπος δίνει τη διεύθυνση της μεταβλητής (διπλό x). Αυξάνεται με 1 που δίνει τη διεύθυνση όπου μπορείτε να αποθηκεύσετε την επόμενη μεταβλητή του τύπου x.

Η πληκτρολόγηση x σε char * και η διαφορά θα σας επιτρέψει να γνωρίζετε τον συνολικό αριθμό μεταβλητών του τύπου char που είναι αποθηκευμένοι στη μνήμη. Χρησιμοποιήσαμε το getchar () για να διαβάσουμε το χαρακτήρα.

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

παραγωγή:

8

Σύνταξη 2)

sizeof (variable-name): Variable-name = όνομα της μεταβλητής που θέλετε να προσδιορίσετε το μέγεθος.

Στο παρακάτω πρόγραμμα Γ, εκτυπώνουμε τον τύπο δεδομένων μεγέθους char. Η δήλωση Printf περιέχει συνάρτηση sizeof με όρισμα char.

Παράδειγμα sizeof (μεταβλητή-όνομα):

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

Παραγωγή:

sizeof(char) = 1

Σύνταξη 3)

sizeof (έκφραση): Έκφραση = Έκφραση που πρέπει να αξιολογήσετε.

Παράδειγμα sizeof (έκφραση):

Στο παρακάτω πρόγραμμα, πρώτα υπολογίζουμε και εκτυπώνουμε το μέγεθος της μεταβλητής. Μετά από αυτό, αξιολογούμε την έκφραση, την αποθηκεύουμε στη μεταβλητή a και εμφανίζουμε το αποτέλεσμα στη δήλωση 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;}

Παραγωγή:

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

Διαφορά μεταξύ strlen () και sizeof ()

Ακολουθούν οι σημαντικές διαφορές μεταξύ strlen () και sizeof ():

Στράλεν () Μέγεθος του()
Το Strlen () είναι μια προκαθορισμένη συνάρτηση, η οποία ορίζεται σε ένα αρχείο κεφαλίδας γνωστό ως string.h. Το Sizeof () είναι ένας unary τελεστής ή παράσταση χρόνου μεταγλώττισης που υπολογίζει το μέγεθος της μνήμης που καταλαμβάνεται από μια μεταβλητή.
Αυτή η μέθοδος χρησιμοποιείται για τον εντοπισμό του μήκους μιας σειράς συμβολοσειράς ή χαρακτήρα. Αυτή η μέθοδος χρησιμοποιείται για την εύρεση του πραγματικού μεγέθους των δεδομένων (εκχωρημένα) σε byte.
Μετράει τους αριθμούς των χαρακτήρων σε μια συμβολοσειρά εξαλείφοντας μηδενικές τιμές. Επιστρέφει το μέγεθος ενός τελεστή, όχι το μήκος της συμβολοσειράς (συμπεριλαμβανομένων των τιμών null).
Εκχωρεί μνήμη στο χρόνο εκτέλεσης και αναζητά την μηδενική τιμή της μεταβλητής. Το Sizeof () δεν ενδιαφέρεται για τη μεταβλητή τιμή.
Η λειτουργία Strlen () λειτουργεί μόνο με συμβολοσειρές χαρακτήρων Η συνάρτηση Sizeof () επιστρέφει το μέγεθος της μνήμης που κατανέμεται σε byte.
Η τιμή επιστροφής στο strlen () είναι μεγάλο int. Η τιμή επιστροφής στο sizeof () δεν έχει υπογραφεί int.
Υπάρχει μόνο μία σύνταξη του strlen () που είναι int strlen (const char * str). Υπάρχουν τρεις συντάξεις sizeof () 1) sizeof (type), 2) sizeof (μεταβλητή-όνομα) και 3) sizeof (έκφραση):