En sträng i C är en rad tecken. C strängar kan vara bokstäver, siffror eller symboler , slumpmässig text eller ord , men alla strängar i detta programmeringsspråk avslutas med en null karaktär . Programmering i C , kan du skapa strängar eller manipulera dem med hjälp av olika C-funktioner . En delsträng eller subsekvens är en del av en större sträng. Det finns flera matematiska verktyg för att bestämma om två strängar har en gemensam delsträng . Delsträngar
att kvalificera som en delsträng måste tecknen på en kortare strängen att visas i en längre sträng i ordning men inte nödvändigtvis ihop . Till exempel , " tiger " är en delsträng av " lilla Gurkan " som " t ", "jag ", " g ", " e " och " r " alla visas i den ordning den större strängen. Om en hel sträng visar upp inuti en annan , större sträng , är den mindre sträng en subsekvens av stora strängen. Med ett par korta strängar , plocka ut en gemensam delsekvens är enkel , men som strängar blir längre , är det svårare att göra det med blotta ögat .
Suffixträd
ett sätt att matcha delsträngar i C är genom att skapa en suffixträd . En suffixträd tar en teckensträng som dess rot , sedan grenar ut för att visa alla möjliga delsträng . Om " tiger " är roten , grenarna inkluderar " tig ", " GE " och " ER ", vilka sedan grenar vidare tills du kommer ner till enkla karaktär blad . Du kan skapa en suffixträd automatiskt med hjälp av en algoritm och sedan använda en annan algoritm för att matcha de grenarna i två strängar och identifiera gemensamma sekvenser .
Funktioner
C programmerare har flera funktioner som de kan använda för att jämföra delsträngar . Om du vill veta om snöre S2 är en subsekvens av S1 , " strstr " hittar S2 inuti S1 om den finns där . Om de två strängarna börjar på samma sätt , " Strspn " talar om hur länge S1 stannar ser ut som S2 och den punkt där den avviker . Du kan använda andra funktioner för att identifiera det första tecknet i S1 delade med S2 , eller hur mycket av S1 har inga S2 tecken i det alls .
Matchande
Programmerare har utvecklat ett antal algoritmer för sträng matchning , vilket har tillämpningar inom områden som DNA- forskning och textanalys . Om du vill utveckla en algoritm för din egen för att matcha delsträngar i C , är en fråga att överväga vilken information du behöver . Du behöver en särskild algoritm om du vill veta vilka tecken de två strängarna aktie , och en annan algoritm om du bara behöver veta hur många tecken strängarna har gemensamt . Letar du efter en exakt matchning är en annorlunda process jämfört med söker en subsekvens där matchande tecken har andra inskjutna tecken.