I eksemplet vist ovenfor, lengden på strengen str er 6.
I denne veiledningen vil vi først vise hvordan du bruker en brukerdefinert funksjon for å beregne lengden på en streng, og så viser vi deg en innebygd biblioteksfunksjon strlen (). Vi viser deg også bruken av størrelsen av operatør for strenglitteratur.
Strenglengde ved bruk av brukerdefinert funksjon
Du kan skrive en brukerdefinert funksjon som returnerer antall tegn i en streng.
// Eksempel1.c#inkludere
int stringLength (char * str)
int i = 0;
mens (str [i] != '\ 0') i ++;
returnere jeg;
int main ()
char str [30] = "STRING";
printf ("Strengens lengde er =>% d \ n", strengLengde (str));
retur 0;
Her gjentar vi mens løkken fra jeg = 0 før vi ikke møter '\ 0' karakter. Verdien av Jeg økes med 1 i hver iterasjon av mens sløyfen. Når sløyfen slutter, blir verdien av Jeg er lengden på strengen.
Strenglengde ved hjelp av innebygd biblioteksfunksjon
Den innebygde biblioteksfunksjonen strlen () kan også brukes til å bestemme strenglengde.
strlen () -funksjon:
Topptekstfil:
streng.hSyntaks:
size_t strlen (con char char * str)Argument: Denne funksjonen tar et argument av typen peker til char.
Returverdi: Denne funksjonen returnerer lengden på strengen str. Noter det størrelse_t er bare et alias med et usignert heltall.
// Eksempel2.c#inkludere
#inkludere
int main ()
char str1 [30] = "STRING ARRAY";
char * str2;
char * str3;
str2 = str1;
str3 = "STRING POINTER";
printf ("Lengden på strengen str1 er =>% ld \ n", strlen (str1));
printf ("Lengden på strengen str2 er =>% ld \ n", strlen (str2));
printf ("Lengden på strengen str3 er =>% ld \ n", strlen (str3));
printf ("Lengden på strengen" STRING LITERALS "er =>% ld \ n", strlen ("STRING LITERALS"));
retur 0;
Her sender vi strengmatrise, strengpeker og streng bokstavelig til strlen-funksjonen, og funksjonen returnerer lengden på strengen.
Strenglengde ved bruk av operatørens størrelse
Vi kan også bruke størrelsen av operator for strenglengde (bare for strengliteral). Men vi må trekke 1 fra verdien som returneres av denne operatøren, fordi den også teller tegnet '\ 0'. For matrise og peker returnerer størrelsen på operatøren henholdsvis den tildelte størrelsen på matrisen og pekeren.
// Eksempel3.c#inkludere
int main ()
char str1 [30] = "STRING";
char * str2 = str1;
printf ("Lengde på" STRING "er =>% d \ n", (sizeof ("STRING") - 1));
printf ("Tildelt størrelse på str1-matrisen er =>% d \ n", sizeof (str1));
printf ("Størrelse på str2-pekeren er =>% d \ n", størrelse på (str2));
retur 0;
Her, i linje nr 9, passerer vi strengen bokstavelig "STRING" og får størrelsen, inkludert '\ 0' tegnet. Så vi trekker fra 1 og får den faktiske størrelsen på strengen.
Når vi sender en matrise til størrelsen på operatoren, returnerer den den tildelte størrelsen på matrisen, som er 30, og når du sender en tegnpeker, returnerer den størrelsen på pekeren.
Konklusjon
Så i denne opplæringen har vi vist deg hvordan strenglengden kan beregnes på forskjellige måter. Du kan bruke i koden din hvilken metode som passer best for deg.