C-Programmierung Palindrome usw.?

5 Antworten

in VBA würde ich es so lösen:

SUB Programm ()
Dim Text as String, NText as String, P as String
Text=LCase(Inputbox ("Gib einen Text ein."))
NText=Umdrehen (Text)
If Text <> NText Then P="k"
Msgbox "Der Text ' " & Text & " ' ist " & P & "ein Palindrom"
End Sub

Function Umdrehen (x)
Dim Z as Integer
For Z = Len (x) To 1 Step -1
Umdrehen=Umdrehen&Mid (x, Z, 1)
Next
End Function

mit Lcase wird der ganze Text gleich in Kleinbuchstaben gewandelt.
das P dient nur als Platzhalter für ein "k" so dass am ende statt "ein Palindrom" "kein Palindrom" wird. P bleibt ja leer wenn die Bedingung nicht erfüllt wird.

Hallo asfdasldfjsl,

Schaue dir doch erstmal an was ein String eigentlich ist.
Zusätzlich solltest du dir nochmal separat Arrays anschauen ;)

LG

Woher ich das weiß:Berufserfahrung – Angestellter Penetrationstester

Ein Palindrom ist ein Wort das umgekehrt das selbe ist. Ich kenne mich nicht spezifisch mit C aus, aber in anderen Programmiersprachen würde ich einfach das Wort das du ja als string Variable hältst in ein Char Array konvertieren. Dann kannst du es ja einfach mit ner FOR-Schleife rückwärts in nen neuen String schreiben. Am ende überprüfst du ob der alte String und der neue den selben Inhalt haben. Wenn ja ist es ein Palindrom, ansonsten nicht.

Hi,

in vielen Programmiersprachen gibt es dazu schon passende Funktionen, welche den String entsprechend umdrehen. In C müsste das "strrev()" sein.

Allerdings weiß ich nicht, ob das von deinem Lehrer so gewollt ist.

Auf folgender Seite kannst du dir ein wenig Inspiration holen, wie du das Problem lösen könntest:
http://www.programmingsimplified.com/c-program-reverse-string

Gruß