Sträng (data)
Den här artikeln behöver fler eller bättre källhänvisningar för att kunna verifieras. (2017-08) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. |
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
redigeraTeckensträ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.
K | A | L | L | E | NUL |
0x4B | 0x41 | 0x4C | 0x4C | 0x45 | 0x00 |
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.
- | K | A | L | L | E |
0x05 | 0x4B | 0x41 | 0x4C | 0x4C | 0x45 |
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
redigera- ^ ”BSTR”. Microsoft. http://msdn.microsoft.com/en-us/library/ms221069(VS.90).aspx. Läst 27 maj 2010.