Man kan relativt enkelt beräkna längden av en sträng med t.ex. följande funktion:
#include <iostream>
int length (const char * String) {
int Len = 0;
if ( ! String ) {
// ingen sträng givet
return 0;
}
// iterera tills vi stöter på terminatorn
while ( String[Len] != '\0' ) {
Len++;
}
return Len;
}
int main () {
char * S1 = "Hej!";
char * S2 = "Hello world, this is main() calling";
cout << S1 << " är " << length (S1) << " tecken lång." << endl;
cout << S2 << " är " << length (S2) << " tecken lång." << endl;
}
|
Ovanstående funktion kan hantera alla strängar så länge som de är terminerade av teckent
'\0'. Den kan även kontrollera ifall en odefinierad pekare (nollpekare)
skickats som parameter, och returnerar i så fall 0. Istället för att varje gång skriva en dylik
funktion kan vi använda en standard funktion för att beräkna längden. Den heter
strlen() och tar som argument en const char * och
returner en size_t (positivt heltal). Denna funktion finns definierad i en
headerfil <string.h> som även innehåller en del andra C-strängrelaterade
funktioner. Notera extensionen .h. Blanda inte ihop denna med headerfilen
<string> som ju defineirar normala string. De är
tyvärr väldigt lika. Ovanstående program kan skrivas kortare med strlen():
#include <iostream>
#include <string.h>
int main () {
char * S1 = "Hej!";
char * S2 = "Hello world, this is main() calling";
cout << S1 << " är " << strlen (S1) << " tecken lång." << endl;
cout << S2 << " är " << strlen (S2) << " tecken lång." << endl;
} |