I eksemplet vist ovenfor er længden af strengen str er 6.
I denne vejledning viser vi først, hvordan du bruger en brugerdefineret funktion for at beregne længden af en streng, og så viser vi dig en indbygget biblioteksfunktion strlen (). Vi viser dig også anvendelsen af størrelse på operatør til strengbogstaver.
Strengelængde ved hjælp af brugerdefineret funktion
Du kan skrive en brugerdefineret funktion, der returnerer antallet af tegn i en streng.
// Eksempel1.c#omfatte
int stringLength (char * str)
int i = 0;
mens (str [i] != '\ 0') i ++;
returnere i;
int main ()
char str [30] = "STRING";
printf ("Strengens længde er =>% d \ n", strengLængde (str));
returnere 0;
Her gentager vi mens løkken fra i = 0 indtil vi ikke støder på '\ 0' Karakter. Værdien af jeg øges med 1 i hver iteration af while-sløjfen. Når sløjfen slutter, værdien af jeg er længden af strengen.
Strengelængde ved hjælp af indbygget biblioteksfunktion
Den indbyggede biblioteksfunktion strlen () kan også bruges til at bestemme strenglængde.
strlen () funktion:
Overskriftsfil:
snor.hSyntaks:
size_t strlen (const char * str)Argument: Denne funktion tager et argument af typen pointer til char.
Returværdi: Denne funktion returnerer længden af strengen str. Noter det størrelse_t er bare et alias med et usigneret heltal.
// Eksempel2.c#omfatte
#omfatte
int main ()
char str1 [30] = "STRING ARRAY";
char * str2;
char * str3;
str2 = str1;
str3 = "STRING POINTER";
printf ("Strengens længde str1 er =>% ld \ n", strlen (str1));
printf ("Strengens længde str2 er =>% ld \ n", strlen (str2));
printf ("Strengens længde str3 er =>% ld \ n", strlen (str3));
printf ("Strengens længde" STRING LITERALS "er =>% ld \ n", strlen ("STRING LITERALS"));
returnere 0;
Her videregiver vi strengarray, strengmarkør og streng bogstaveligt til strlen-funktionen, og funktionen returnerer længden af strengen.
Strenglængde ved hjælp af operatørens størrelse
Vi kan også bruge størrelse på operator for strenglængde (kun for strenglitteral). Men vi er nødt til at trække 1 fra den værdi, der returneres af denne operator, fordi den også tæller tegnet '\ 0'. For matrix og markør returnerer operatorens størrelse henholdsvis den tildelte størrelse af arrayet og markøren.
// Eksempel3.c#omfatte
int main ()
char str1 [30] = "STRING";
char * str2 = str1;
printf ("Længde på" STRING "er =>% d \ n", (sizeof ("STRING") - 1));
printf ("Tildelt størrelse af str1-array er =>% d \ n", sizeof (str1));
printf ("Størrelse af str2-markøren er =>% d \ n", størrelse af (str2));
returnere 0;
Her, i linje nr. 9, passerer vi strengen bogstavelig “STRING” og får størrelsen inklusive '\ 0' tegnet. Så vi trækker 1 og får den faktiske størrelse af strengen.
Når vi videregiver en matrix til størrelsen på operatoren, returnerer den den tildelte størrelse af arrayet, som er 30, og når vi sender en tegnmarkør, returnerer den størrelsen på markøren.
Konklusion
Så i denne vejledning har vi vist dig, hvordan strenglængde kan beregnes på forskellige måder. Du kan bruge i din kode, hvilken metode der passer bedst til dig.