String tabeller är en datastruktur i C och C + + programmering . I dessa språk , strängar är sekvenser av tecken , och sekvenserna kan vara av valfri längd. Bygga ett bord där alla poster är olika längder skulle kunna åstadkommas genom att tillåta tillräckligt med utrymme för den längsta möjliga ordet i varje tabell läge , men detta skulle slösa bort en hel del utrymme . Strängtabeller undvika att slösa utrymme genom att bara skriva alla strängar i sekvens med specialtecken ' \\ 0 ' mellan varje sträng . Att referera till en sträng , behöver du bara veta var den börjar . Instruktioner
1
Skriv koden " char STRINGTABLE ( 1000), " att skapa en sträng bord som rymmer 1000 tecken . När du ställer in strängen tabellen , kommer du också att behöva inrätta en " pekare " som pekar till nästa tillgängliga adress i strängen tabellen . För att göra detta , skriv in koden : " int P = 0 ; " och varje gång du sätter ett ord fras i strängen tabellen , tillsätt längden av strängen till P , så P alltid berättar var du ska lägga till nästa ord
2
skriva koden : " int DisplacementTable ( 100 ) , " att inrätta en förskjutning som kommer att hålla 100 nummer . . När du skriver in ord i strängen tabellen , kommer du in i en tal i förskjutningen tabellen . Till exempel, om pekaren P är lika med 147 när du lägger till ett ord i strängen bordet , satte numret 147 i förskjutningen tabellen
3
Konvertera en bokstav i ett ord till minnesplats som innehåller den genom att söka igenom strängen bordet tills du hittar en matchning , att räkna antalet " \\ 0 ' tecken. Till exempel , om du konverterar bokstäverna " abc " till ett nummer som du skulle skriva koden : " target = ' ABC ' , k = 0 , for (i = 0; I LT 1000; i + + ) {if STRINGTABLE (i ) == målretur DisplacementTable ( k ) , om STRINGTABLE ( i) == ' \\ 0 ' k + + , . " Detta kommer att söka igenom till sträng bord för mål brev och returnera det antal som motsvarar adressen för målet
Addera ditt