C Programmering

Strenglængde på C-sprog

Strenglængde på C-sprog
En streng i C-sprog er en række tegn, der afsluttes med et null-tegn (\ 0). Strenglængden er antallet af tegn i en streng. I strenglængden '\ 0' tælles et tegn ikke.

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

Syntaks:

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.

Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...
Bedste kommandoliniespil til Linux
Kommandolinjen er ikke kun din største allierede, når du bruger Linux, den kan også være kilde til underholdning, fordi du kan bruge den til at spille...
Bedste apps til Gamepad Mapping til Linux
Hvis du kan lide at spille spil på Linux med en gamepad i stedet for et typisk tastatur- og musesystem, er der nogle nyttige apps til dig. Mange pc-sp...