Sträng (data)

En sträng inom datalogi är en mängd som består av en ordnad följd av ett bestämt antal element ur ett givet alfabet. Den vanligaste tillämpningen av strängar är teckensträngar, som består av en ordnad följd av numeriska värden som representerar enskilda tecken ur en viss teckenkodning. Teckensträngar representerar ofta text som kan läsas av slutanvändaren i ett användargränssnitt.

Implementationer

Teckensträngar i programspråket C består av en följd numeriska värden som avslutas med ett nolltecken ('\0' eller hex 0x00). De numeriska värdena är antingen 8-bitarsvärden (datatypen char), 16-bitarsvärden eller 32-bitarsvärden (till exempel datatypen wchar_t i flera Unix-implementationer av ANSI C). Antalet element i strängen ges genom iteration från det första elementet tills ett nollelement påträffas. I följande illustration visas en sträng med fem element och avslutande nollelement. På den övre raden visas vilka tecken i teckenuppsättningen (ASCII) elementen motsvarar, och på den nedre raden visas elementens numeriska (hexadecimala) värden.

KALLENUL
0x4B0x410x4C0x4C0x450x00

Ett annat sätt att definiera hur många element som ingår i strängen är att lagra antalet element på en särskild minnesadress i direkt anslutning till de övriga elementen. I programspråket Pascal används strängar där den första byten innehåller strängens längd följt av strängen själv. Om de enskilda elementen i strängen består av 8 bitar kan man på detta sätt inte representera teckensträngar som är längre än 255 tecken. Datatypen BSTR i programmeringsgränssnittet till Microsoft Windows anger antalet element på ett liknande sätt, men här består elementet som definierar längden alltid av 32 bitar, vilket tillåter strängar med drygt 4 miljarder tecken.[1] Fördelen med att inte ange antalet element med endast ett avslutande nollelement är att strängen med denna metod kan innehålla ett eller flera nollelement. Metoden visas i följande illustration, där det första grå elementet anger antalet element.

-KALLE
0x050x4B0x410x4C0x4C0x45

En mer avancerad typ av sträng finns i C++ där strängklassen std::basic_string kan bestå av i princip vilka element som helst, till exempel tecken med eller utan avslutande nolltecken, siffror, instansieringar av andra klasser eller funktionspekare.

Noter

Se även

Media som används på denna webbplats

Question book-4.svg
Författare/Upphovsman: Tkgd2007, Licens: CC BY-SA 3.0
A new incarnation of Image:Question_book-3.svg, which was uploaded by user AzaToth. This file is available on the English version of Wikipedia under the filename en:Image:Question book-new.svg