Mit zwei Pointern ein Wort verkehrt herum drehen
-
Hi,
ich suche nach einer eleganten Lösung ein verkehrt herum geschriebenes Wort in die richtige Reihenfolge zu bringen. Mir fehlt gerade ein Lösungsansatz.
#include <stdlib.h> #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char eingabe[200]; char *p; char *e; while(fgets(eingabe,200,stdin) != NULL) { p = eingabe; while(*p != '\n' && *p != ' ') { e = p; while(*e != ' ' && *e != '\n') { e++; } e--; if(islower(*p) && isupper(*e)) { /* Hier sollte jetzt das Wort rumgedreht werden */ /* z.B: aus tsruD -> Durst */ } e++; p = e; p++; } printf("\n"); } return EXIT_SUCCESS; }
Hat jemand eine Idee?
Danke schonmal
-
W0lf schrieb:
ich suche nach einer eleganten Lösung ein verkehrt herum geschriebenes Wort in die richtige Reihenfolge zu bringen.
Wie sieht denn deine nicht-elegante Lösung aus?
Das klingt sehr nach Hausaufgabe.
-
void reverse_range(char *begin, char * end) { --end; while(begin < end) { char const t = *begin; *begin = *end; *end = t; ++begin; --end; } }