Μήκος συμβολοσειράς στη γλώσσα Γ

String Length C Language



Μια συμβολοσειρά στη γλώσσα C είναι ένας πίνακας χαρακτήρων που τερματίζεται με μηδενικό χαρακτήρα ( 0). Το μήκος συμβολοσειράς είναι ο αριθμός των χαρακτήρων σε μια συμβολοσειρά. Στο μήκος συμβολοσειράς ' 0', ένας χαρακτήρας δεν υπολογίζεται.







Στο παραπάνω παράδειγμα, το μήκος της συμβολοσειράς Π είναι 6.



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



Μήκος συμβολοσειράς χρησιμοποιώντας συνάρτηση που ορίζεται από το χρήστη

Μπορείτε να γράψετε μια συνάρτηση που ορίζεται από το χρήστη και η οποία επιστρέφει τον αριθμό των χαρακτήρων σε μια συμβολοσειρά.





// Παράδειγμα1.γ
#περιλαμβάνω

intstringLength(απανθρακώνω *Π)
{
intΕγώ=0?

ενώ(Π[Εγώ] ! = = ' 0')Εγώ++;

ΕΠΙΣΤΡΟΦΗΕγώ?
}

intκύριος()
{
απανθρακώνωΠ[30]= 'ΣΕΙΡΑ'?

printf ('Το μήκος της συμβολοσειράς συμβολοσειράς είναι => %d n',stringLength(Π))?

ΕΠΙΣΤΡΟΦΗ 0?
}

Εδώ, επαναλαμβάνουμε τον βρόχο while από i = 0 μέχρι να μην συναντήσουμε το ‘ 0’ χαρακτήρας. Η αξία του Εγώ αυξάνεται κατά 1 σε κάθε επανάληψη του βρόχου while. Όταν τελειώσει ο βρόχος, η τιμή του Εγώ είναι το μήκος της συμβολοσειράς.



Μήκος συμβολοσειράς χρησιμοποιώντας τη λειτουργία ενσωματωμένης βιβλιοθήκης

Η ενσωματωμένη λειτουργία βιβλιοθήκης strlen () μπορεί επίσης να χρησιμοποιηθεί για τον προσδιορισμό του μήκους συμβολοσειράς.

συνάρτηση strlen ():

Αρχείο κεφαλίδας:

σειρά.η

Σύνταξη:

μέγεθος_τ στρλέν (const απανθρακώνω *Π)

Διαφωνία: Αυτή η συνάρτηση μεταφέρει ένα όρισμα του δείκτη τύπου σε char.

Επιστροφή τιμής: Αυτή η συνάρτηση επιστρέφει το μήκος της συμβολοσειράς Π Το Σημειώστε ότι μέγεθος_τ είναι απλώς ένα ψευδώνυμο ενός ανυπόγραφου ακέραιου.

// Παράδειγμα2.γ
#περιλαμβάνω
#περιλαμβάνω

intκύριος()
{
απανθρακώνωstr1[30]='STRING ARRAY'?
απανθρακώνω *str2?
απανθρακώνω *str3?

str2=str1?
str3= 'STRING POINTER'?

printf ('Το μήκος της συμβολοσειράς str1 είναι => %ld n', στρλέν (str1))?
printf ('Το μήκος της συμβολοσειράς str2 είναι => %ld n', στρλέν (str2))?
printf ('Το μήκος της συμβολοσειράς str3 είναι => %ld n', στρλέν (str3))?
printf («Μήκος χορδής»STRING LITERALS'είναι => %ld n', στρλέν ('STRING LITERALS'))?

ΕΠΙΣΤΡΟΦΗ 0?
}

Εδώ, περνάμε πίνακα συμβολοσειράς, δείκτη συμβολοσειράς και συμβολοσειρά κυριολεκτικά στη συνάρτηση strlen και η συνάρτηση επιστρέφει το μήκος της συμβολοσειράς.

Μήκος συμβολοσειράς χρησιμοποιώντας το μέγεθος του χειριστή

Μπορούμε επίσης να χρησιμοποιήσουμε το μέγεθος του τελεστής για μήκος συμβολοσειράς (μόνο για συμβολοσειρά κυριολεκτικά). Αλλά, πρέπει να αφαιρέσουμε το 1 από την τιμή που επιστρέφει αυτός ο τελεστής, επειδή μετράει επίσης τον χαρακτήρα ' 0'. Για πίνακα και δείκτη, ο τελεστής sizeof επιστρέφει το εκχωρημένο μέγεθος του πίνακα και του δείκτη, αντίστοιχα.

// Παράδειγμα3.γ
#περιλαμβάνω

intκύριος()
{
απανθρακώνωstr1[30] = 'ΣΕΙΡΑ'?
απανθρακώνω *str2=str1?

printf ('Μήκος'ΣΕΙΡΑ'είναι => %d n',(μέγεθος του('ΣΕΙΡΑ') - 1))?
printf ('Το εκχωρημένο μέγεθος του πίνακα str1 είναι => %d n',μέγεθος του(str1))?
printf ('Το μέγεθος του δείκτη str2 είναι => %d n',μέγεθος του(str2))?

ΕΠΙΣΤΡΟΦΗ 0?
}

Εδώ, στη γραμμή αριθ. 9, περνάμε τη συμβολοσειρά κυριολεκτικά STRING και παίρνουμε το μέγεθος, συμπεριλαμβανομένου του χαρακτήρα ‘ 0’. Έτσι, αφαιρούμε το 1 και παίρνουμε το πραγματικό μέγεθος της συμβολοσειράς.

Όταν περνάμε έναν πίνακα στον τελεστή μεγέθους, επιστρέφει το εκχωρημένο μέγεθος του πίνακα, το οποίο είναι 30, και όταν περνάει ένα δείκτη χαρακτήρων, επιστρέφει το μέγεθος του δείκτη.

συμπέρασμα

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