Sträng (data)
Den här artikelnbehöver fler eller bättrekällhänvisningarför att kunnaverifieras.(2017-08) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kanifrågasättasoch tas bort utan att det behöver diskuteras pådiskussionssidan. |
Enstränginomdatalogiär enmängdsom består av en ordnad följd av ett bestämt antal element ur ett givet alfabet. Den vanligaste tillämpningen av strängar ärteckensträ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
[redigera|redigera wikitext]Teckensträngar iprogramspråket Cbestår av en följd numeriska värden som avslutas med ett nolltecken ('\0'ellerhex0x00). De numeriska värdena är antingen 8-bitarsvärden (datatypenchar), 16-bitarsvärden eller 32-bitarsvärden (till exempel datatypenwchar_ti flera Unix-implementationer avANSI 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. Iprogramspråket Pascalanvänds strängar där den förstabyteninnehå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. DatatypenBSTRi 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ängklassenstd::basic_stringkan 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|redigera wikitext]- ^ ”BSTR”.Microsoft.http://msdn.microsoft /en-us/library/ms221069(VS.90).aspx.Läst 27 maj 2010.