En streng i C er en rekke tegn. C strenger kan være bokstaver, tall eller symboler, tilfeldig tekst eller ord , men alle strenger i dette programmeringsspråket avslutte med en null tegn . Programmering i C , kan du lage strenger eller manipulere dem ved hjelp av ulike C-funksjoner . En delstrengen eller subsekvens er en del av en større streng. Det er flere matematiske verktøy for å avgjøre om to strenger har en felles delstreng . Understrenger
å kvalifisere som en delstreng , må tegnene i en kortere streng vises i en lengre streng i orden, men ikke nødvendigvis sammen . For eksempel , " tiger " er en delstrengen av "lille sylteagurk " som " t ", " jeg ", " g ", " e" og " r" alle vises i den rekkefølgen den større strengen . Hvis en hel streng viser seg inne i et annet , større streng, er den mindre streng en subsekvens av den store strengen. Med et par korte strenger , plukke ut en felles subsekvens er enkel , men som strenger vokse lenger , er det vanskeligere å gjøre det med det blotte øye .
Suffiks Tre
< p > en måte å matche understrenger i C er ved å opprette et suffiks treet. Et suffiks treet tar en streng med tegn som roten, deretter grener ut for å vise alle mulige delstrengen . Hvis " tiger" er roten , greiner inkluderer " tig ", " ge " og " eh ", som hver deretter grener videre til du kommer ned til én karakter blader. Du kan opprette et suffiks tre automatisk ved hjelp av en algoritme og deretter bruke en annen algoritme for å matche grenene i to strenger og identifisere felles sekvenser .
Funksjoner
C programmerere har flere funksjoner de kan bruke til å sammenligne understrenger . Hvis du ønsker å vite om streng S2 er en subsekvens av S1 , " strstr " finner S2 inne S1 hvis den er der . Hvis de to strenger starte på samme måte, " Strspn " forteller deg hvor lenge S1 forblir ser ut som S2 og det punktet hvor det divergerer . Du kan bruke andre funksjoner for å identifisere det første tegnet i S1 delte med S2 , eller hvor mye av S1 har ingen S2 tegn i det hele tatt.
Matching
programmerere har utviklet en rekke algoritmer for streng matching, som har programmer i felt som for eksempel DNA forskning og tekstanalyse . Hvis du ønsker å utvikle en algoritme av din egen for matching understrenger i C , er ett spørsmål for å vurdere hva slags informasjon du trenger. Du trenger en spesiell algoritme hvis du ønsker å vite hvilke tegn de to strenger aksje, og en annen algoritme dersom du trenger bare å vite hvor mange tegn strengene har til felles . Leter du etter en eksakt match er en annen prosess i forhold til jakt etter en subsekvens hvor matchende tegn har andre tegn interposed .