C Programmering

Strenglengde i C-språk

Strenglengde i C-språk
En streng i C-språk er en rekke tegn som avsluttes med et nulltegn (\ 0). Strenglengden er antall tegn i en streng. I strenglengden '\ 0' telles ikke et tegn.

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.h

Syntaks:

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.

Mus Midterste museknapp fungerer ikke i Windows 10
Midterste museknapp fungerer ikke i Windows 10
De midtre museknapp hjelper deg med å bla gjennom lange websider og skjermer med mye data. Hvis det stopper, vil du ende opp med å bruke tastaturet ti...
Mus Hvordan endre venstre og høyre museknapp på Windows 10 PC
Hvordan endre venstre og høyre museknapp på Windows 10 PC
Det er ganske vanlig at alle datamusenheter er ergonomisk designet for høyrehendte brukere. Men det er tilgjengelige musenheter som er spesielt design...
Mus Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Bruk av mus eller tastatur i feil stilling for overdreven bruk kan føre til mange helseproblemer, inkludert belastning, karpaltunnelsyndrom og mer. I ...