Name verkehrt herum ausgeben
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ok zuerst mal Danke für alle Antworten.
Sorry, dass ich falsch gepostet habe._matze hatte recht (und hat es sogar so formuliert, dass ich es verstanden habe^^)
ich musste nur noch das &name[i] in name[i] ändern und %c in %s ändern.Gruess Ueli
Ps: Werde nun noch versuchen, das mit den Leerzeichen in den Griff zu bekommen evtl. melde ich mich nochmals kurz.
-
Uelidetumm schrieb:
Ps: Werde nun noch versuchen, das mit den Leerzeichen in den Griff zu bekommen evtl. melde ich mich nochmals kurz.
Wenn du die Schleife so beibehalten willst, kannst du einfach bei name[i]==0 abbrechen.
-
mach doch z.b. so:
#include <stdio.h> #include <string.h> void rev (char *in, char *out) { char *p = in + strlen(in); // ende finden while (p >= in) // solange wir nicht wieder am anfang sind *out++ = *--p; // rueckwaerts kopieren, pointer weiterzaehlen } // test int main(void) { char *in = "thomas"; char out[256]; rev (in, out); // drehen puts (in); // original puts (out); // gedreht }
-
So danke _matze, du bist der Sieger^^
danke auch an fricky, aber wollte mein Programm so beibehalten.
der code sieht nun so aus:#include <stdio.h> char name[20]; int i; int verkehren() { for (i=8; i >= 0; i--) { if (name[i]!=0) { printf("%c", name[i]); } } } int main() { printf("Bitte geben Sie einen Namen ein (MAX. 20 Stellen)"); scanf("%s", &name); verkehren(); return 0; }
Lg Ueli
-
Uelidetumm schrieb:
danke auch an fricky, aber wollte mein Programm so beibehalten.
besser ist das. mein vorschlag ist nämlich ein wenig buggy.
-
for (i=8; i >= 0; i--)
Und wenn der Name 9 oder mehr Zeichen lang ist?
-
Unter anderem ist das:
Uelidetumm schrieb:
... for (i=8; i >= 0; i--) ...
Lg Ueli
kagga!
LG,
kagga detect0r
-
hier kommts nich so auffe länge an
void revers0r(char* t) { char* s = t; while(*t) t++; while (--t >= s) putchar(*t); } int main() { revers0r ("stoffregen"); return 0; }
-
knivil schrieb:
for (i=8; i >= 0; i--)
Und wenn der Name 9 oder mehr Zeichen lang ist?
Kann doch gar nicht passieren! Schließlich hat er den Benutzer höflichst gebeten, nicht mehr Zeichen einzugeben!
-
printf("Bitte geben Sie einen Namen ein (MAX. 20 Stellen)");
-
knivil schrieb:
printf("Bitte geben Sie einen Namen ein (MAX. 20 Stellen)");
Hm, der erste Code sah noch anders aus... War ja sowieso nur ein Witz. Er soll sich schließlich nicht auf das Wohlwollen des Benutzers verlassen.