I exemplet som visas ovan, längden på strängen str är 6.
I den här handledningen visar vi först hur man använder en användardefinierad funktion för att beräkna längden på en sträng, och sedan visar vi dig en inbyggd biblioteksfunktion strlen (). Vi visar dig också användningen av storlek av operatör för strängbokstäver.
Stränglängd med användardefinierad funktion
Du kan skriva en användardefinierad funktion som returnerar antalet tecken i en sträng.
// Exempel1.c#omfatta
int stringLength (char * str)
int i = 0;
medan (str [i] != '\ 0') i ++;
returnera i;
int main ()
char str [30] = "STRING";
printf ("Strängens längd är =>% d \ n", stringLength (str));
returnera 0;
Här upprepar vi stundslingan från i = 0 tills vi inte stöter på '\ 0' karaktär. Värdet av i ökas med 1 i varje iteration av stundslingan. När slingan slutar kommer värdet på i är strängens längd.
Stränglängd med inbyggd biblioteksfunktion
Den inbyggda biblioteksfunktionen strlen () kan också användas för att bestämma stränglängd.
strlen () -funktion:
Rubrikfil:
sträng.hSyntax:
size_t strlen (const char * str)Argument: Denna funktion tar ett argument av typpekaren till char.
Returvärde: Den här funktionen returnerar strängens längd str. Anteckna det storlek_t är bara ett alias för ett osignerat heltal.
// Exempel2.c#omfatta
#omfatta
int main ()
char str1 [30] = "STRING ARRAY";
char * str2;
char * str3;
str2 = str1;
str3 = "STRING POINTER";
printf ("Strängens längd str1 är =>% ld \ n", strlen (str1));
printf ("Strängens längd str2 är =>% ld \ n", strlen (str2));
printf ("Strängens längd str3 är =>% ld \ n", strlen (str3));
printf ("Strängens längd" STRING LITERALS "är =>% ld \ n", strlen ("STRING LITERALS"));
returnera 0;
Här skickar vi strängmatris, strängpekare och sträng bokstavligt till strlen-funktionen, och funktionen returnerar strängens längd.
Stränglängd med användarens storlek
Vi kan också använda storlek av operatör för stränglängd (endast för strängbokstav). Men vi måste subtrahera 1 från det värde som returneras av denna operatör, eftersom det också räknar tecknet '\ 0'. För matris och pekare returnerar operatörens storlek den tilldelade storleken för matrisen respektive pekaren.
// Exempel3.c#omfatta
int main ()
char str1 [30] = "STRING";
char * str2 = str1;
printf ("STRING" är =>% d \ n ", (sizeof (" STRING ") - 1));
printf ("Tilldelad storlek för str1-matrisen är =>% d \ n", sizeof (str1));
printf ("Str2-pekarens storlek är =>% d \ n", sizeof (str2));
returnera 0;
Här, i rad nr 9, passerar vi strängen bokstavlig "STRING" och får storleken, inklusive '\ 0' karaktär. Så vi subtraherar 1 och får strängens faktiska storlek.
När vi skickar en matris till operatörens storlek returnerar den den tilldelade storleken på matrisen, som är 30, och när du skickar en teckenpekare returnerar den storleken på pekaren.
Slutsats
Så i denna handledning har vi visat dig hur stränglängden kan beräknas på olika sätt. Du kan använda din kod vilken metod som passar dig bäst.