Funksjon i C for Palindromer

Funksjon i C for Palindromer


Palindromer er setninger eller ord som leser på samme måte fremover og bakover. Mens et menneske kan bare lese den setningen å fastslå hvorvidt det er et palindrom, trenger et dataprogram for å sjekke snudd setning, og gjøre sammenligninger basert på verdien av hver versjon. Da programmet kan avgjøre om en setning er et palindrom.

Palindrome funksjon Mal

En grunnleggende palindrom-kontroll funksjon kan ta en setning som et argument, og kontroller at setningen for å se om den leser forover og bakover:

bool palindromCheck (streng kontroll)

Denne funksjonen returnerer en boolsk verdi, noe som betyr at det vil returnere en sann eller falsk verdi basert på hvorvidt uttrykket bestått palindrom test.

Reversere Phrase

I funksjonen, må det være en måte å reversere strengen. En programmerer kan oppnå dette ved å lese argumentet setning i revers, og lagre den i en annen streng variabel:

string new_phrase;

int i = (int) checking.length () - 1;

for (i; i> = 0; I--)

{

new_phrase.append (sjekke [i]);

}

Mens kanskje ikke den mest effektive metode, viser dette for sløyfen tydelig hva som skjer: sløyfene starter ved slutten av "kontroll" setning, og virker bakover, tilføye hvert tegn til new_phrase.

Kontrollere Palindrome

C ++ string operatører inkluderer sammenligningsoperatorene (større enn, mindre enn, lik). Det vil si at strengene kan sammenlignes mye som numeriske verdier. Så hvis den angitte strengen verdien er "radaren" da løkken vil reversere ordet og lagre den i new_phrase variabel. Da en enkel sammenligning mellom variablene:

if (sjekker == new_phrase)

vil returnere "true" (fordi begge strengvariabler vil inneholde ordet "radar").

begrensninger

Strengen sammenligning fungerer bare på strenger som er identiske. Hvis en palindrom er ikke helt lik forover og bakover (for eksempel uttrykket "gjøre gjess se god?") Og deretter sammenligningen vil svikte selv gjennom setningen er en palindrom. Oppdage ytterligere palindromes krever parsing setninger og sammenligne tegn for tegn, søker etter ord mønstre i reversert setning i stedet for en direkte sammenligning.