kompletten string kleinschreiben/leerzeichen entfernen
-
Hallo Leute ich möchte ein Programm schreiben,das ein Wort auf Palindrom überprüft.
jetzt hab ich das Problem das wenn ich zb:
Anna <-funktioniert es nicht
anna <-funktioniert es
ANNA <-funktioniert esFrage:1
ich hab das versucht hier mit zu behebenpalindrom[dimension]=toupper(palindrom[dimension]);
leider ohne erfolg
hat jemand eine idee?Frage 2:
Wenn ich zb ein Satz auf Palindrom prüfen will
wie bekomme ich die Leerzeichen wegDer Freibier Fred
DerFreibierFred
#include<stdio.h> #include<string.h> #include<ctype.h> #define dimension 20 void main (void) { char palindrom[dimension]={0}; char nochmal; int laenge; int halbtext=0; int merker=0; do { printf("Bitte geben sie ein Palindrom ein Max 20 Zeichen\n\n"); gets(palindrom); laenge=strlen(palindrom); halbtext=laenge/2; laenge=laenge-1; for (int i = 0; i <= halbtext; i++) { if (palindrom[i] != palindrom[laenge]) { merker=merker+1; } laenge--; } if(merker>0) { printf("\nEs ist kein Palindrom"); } else { printf("\nEs ist ein Palindrom"); } printf("\n\nMoechten sie das Programm wiederholen Ja=J Nein=N\n\n"); scanf("%c",&nochmal); fflush(stdin); nochmal=toupper(nochmal); } while(nochmal=='J'); getchar(); fflush(stdin); }
Ich danke schon einmal. :xmas2: :xmas1:
-
palindrom[dimension]=toupper(palindrom[dimension]);
Das würde auch nur das Zeichen hinter dem letzten Zeichen ändern (sprich: Ist sowieso illegal). Du musst schon alle Buchstaben ändern oder jeweils beim Vergleich beide Vergleichspartner.
Ansonsten: Hier im Forum gibt's gefühlte 56546434654 Threads zu Palindromen.
-
Zum erste Problem: Zeile 28:
if (toupper(palindrom[i]) != toupper(palindrom[laenge]))
Das zweite Problem:
Wenn an der Stelle palindrom[i] ein Leerzeichen ist, musst du nur i erhöhen.
Für palindrom[laenge] laenge vermindern.Das dritte Problem:
// printf("Bitte geben sie ein Palindrom ein Max 20 Zeichen\n\n"); // Falsche Anzahl printf("Bitte geben sie ein Palindrom mit max 19 Zeichen\n\n"); // // gets(palindrom); // Schlecht fgets(palindrom,20,stdin); // Besser, weil nur 19 Zeichen eingelesen werden.
-
Ich danke euch