I eksemplet vist ovenfor, strengens længde s 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å brugen af størrelse på operatør for strenglitteraler.
Strenglængde ved hjælp af brugerdefineret funktion
Du kan skrive en brugerdefineret funktion, der returnerer antallet af tegn i en streng.
// Eksempel1.c
#omfatte
intstringLængde(forkælelse *s)
{
intjeg=0;
mens(s[jeg] ! = ' 0')jeg++;
Vend tilbagejeg;
}
intvigtigste()
{
forkælelses[30]= 'SNOR';
printf ('Længden af strengstrengen er => %d n',stringLængde(s));
Vend tilbage 0;
}
Her gentager vi while -loop fra jeg = 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 strengens længde.
Strenglængde ved hjælp af indbygget biblioteksfunktion
Den indbyggede biblioteksfunktion strlen () kan også bruges til at bestemme strenglængde.
strlen () funktion:
Overskriftsfil:
snor.hSyntaks:
størrelse_t strlen (konst forkælelse *s)Argument: Denne funktion tager et argument af typen markør til char.
Returværdi: Denne funktion returnerer længden af strengen s . Noter det størrelse_t er bare et alias for et usigneret heltal.
//Eksempel2.c#omfatte
#omfatte
intvigtigste()
{
forkælelsestr1[30]='STRING ARRAY';
forkælelse *str2;
forkælelse *str3;
str2=str1;
str3= 'STRING POINTER';
printf ('Længden af strengen str1 er => %ld n', strlen (str1));
printf ('Længden af strengen str2 er => %ld n', strlen (str2));
printf ('Længden af strengen str3 er => %ld n', strlen (str3));
printf ('Strengens længde'STRING LITERALER'er => %ld n', strlen ('STRING LITERALS'));
Vend tilbage 0;
}
Her sender vi strengarray, strengmarkør og streng bogstaveligt til strlen -funktionen, og funktionen returnerer strengens længde.
Strenglængde ved hjælp af operatorens størrelse
Vi kan også bruge størrelse på operator for strenglængde (kun for streng bogstavelig). Men vi skal trække 1 fra værdien, der returneres af denne operator, fordi den også tæller ' 0' -tegnet. For array og markør returnerer sizeof -operatoren den tildelte størrelse på henholdsvis arrayet og markøren.
// Eksempel3.c#omfatte
intvigtigste()
{
forkælelsestr1[30] = 'SNOR';
forkælelse *str2=str1;
printf ('Længde på'SNOR'er => %d n',(størrelse på('SNOR') - 1));
printf ('Allokeret størrelse på str1 -arrayet er => %d n',størrelse på(str1));
printf ('Størrelsen på str2 -markøren er => %d n',størrelse på(str2));
Vend tilbage 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 strengens faktiske størrelse.
Når vi sender et array til operatoren sizeof, returnerer det den tildelte størrelse på arrayet, som er 30, og når det passerer en tegnmarkør, returnerer det markørens størrelse.
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 er bedst egnet til dig.