C:
Å finne lengden på en streng
Hvordan:
I C brukes standardbibliotekfunksjonen strlen()
vanligvis for å finne lengden på en streng. Her er et kjapt eksempel:
#include <stdio.h>
#include <string.h>
int main() {
char myString[] = "Hello, World!";
size_t length = strlen(myString);
printf("Lengden på '%s' er %zu.\n", myString, length);
return 0;
}
Eksempel på utdata:
Lengden på 'Hello, World!' er 13.
I dette eksemplet tar strlen()
en streng (myString
) som input og returnerer dens lengde med unntak av nullterminatoren. Bruken av size_t
for lengdevariabelen anbefales fordi det er en usignert heltallstype, som gjør den i stand til å representere størrelsen på det største mulige objektet på systemet.
Dypdykk:
strlen()
-funksjonen har vært en del av C-standardbiblioteket siden språkets begynnelse. Under panseret fungerer den ved å øke en teller mens den traverserer strengen til den treffer nullterminatoren. Denne enkelheten kommer imidlertid med ytelsesoverveielser: fordi strlen()
teller tegn ved kjøretid, er det ineffektivt å gjentatte ganger kalle den på samme streng i en løkke, for eksempel.
Når det gjelder sikkerhet, sjekker ikke strlen()
og andre C-strengbehandlingsfunksjoner innebygd for bufferoverløp, noe som gjør nøye programmering essensielt for å unngå sårbarheter. Moderne alternativer i andre språk, som strengtyper som inkluderer lengden eller bruker sikker bufferhåndtering som standard, eliminerer noen av disse risikoene og ineffektivitetene.
Til tross for sine begrensninger, er forståelsen av strlen()
og manuell strengbehandling i C avgjørende for programmerere, spesielt når man arbeider med lavnivåkode eller når ytelse og minnekontroll er av største viktighet. Det gir også verdifull innsikt i hvordan høyere nivå strengabstraksjoner fungerer i andre språk.