Problem mit Verständnis von Code
-
NullPunktEins schrieb:
Ehrlich gesagt lege ich keinen Wert auf deine Meinung.
Ich will das nur mit den Zeigern erklärt kriegen.Nette Umgangsformen, die du hier im Forum pflegst. Du solltest erst einmal richtig C++ lernen und nicht versuchen, einzelne Codefetzen zu verstehen, die du irgendwo im Internet findest.
Falls du dann immer noch nicht weiter kommst, kannst du hier ja fragen. Zeig dann aber auch Eigeninitiative und behandle die Leute mit Respekt.
-
Also ich weiß sehr wohl was Zeiger & Array's sind.
Nur ich muss zugebene ich habe einige Probleme mit Zeigern.
Ich würde eigentlich nur gerne wissen wie fmt den entschlüsselden Wert von dem Zeiger bekommt.
Ich weiß das der Zeiger buf auf fmt "zeigt".
Aber mehr verstehe ich auch nicht.
Die folgenden Zeilen verstehe ich nicht so wirklich:while (*in) { *buf++ = rot13c(*in++);
Ok ne while Schleife wird gestartet aber wann wird sie beendet?
Und wie ist das mit *buf++ und der Parameter der rot13c übergeben wird (*in++)?
-
NullPunktEins schrieb:
Ok ne while Schleife wird gestartet aber wann wird sie beendet?
wenn (*in == 0)
NullPunktEins schrieb:
Und wie ist das mit *buf++ und der Parameter der rot13c übergeben wird (*in++)?
*buf wird ein wert (der rückgabewert der funktion rot13c()) zugewiesen, danach mit ++ inkrementiert, zeigt danach also auf das nächste byte im speicher. das selbe passiert mit *in als eingabepuffer.
-
zeigt danach also auf das nächste byte im speicher
Ah des heißt also fmt[0] = *buf++ = fmt[1]?
Habe ich das jetzt richtig verstanden?
-
nunja, eher
a = *buf; -> a == buf[0] a = *buf++; -> a == buf[1]
usw.
man hätte es auch so:
int i = 0; while (in[i]) { buf[i] = rot13c(in[i]); i = i + 1;
schreiben können
-
Ok ich danke dir.
Thread kann geschlossen werden.
-
Hallo ich weiß das Thema ist schon alt aber diese Zeile kann doch nicht stimmen:
return u[((p-u) + 13) % 26];
Wenn man mal Beispiel's Weise ein N eingibt 13 Buchstabe im Alphabet und dann (13-26) + 13 macht kommt man auf 0.
Oda verstehe ich dar was verkehrt?
-
Learning by Burning ...
-
Das beantwortet meine Frage immer noch nicht.
-
Hallo,
KeyMaster schrieb:
Wenn man mal Beispiel's Weise ein N eingibt 13 Buchstabe im Alphabet und dann (13-26) + 13 macht kommt man auf 0.
Oda verstehe ich dar was verkehrt?Ja, denn dass der Klammerausdruck negativ wird, kann nie passieren, da u auf den ersten Buchstaben verweist, also auf das "A". Wird z.B. das "N" gefunden, dann liegt das sicher "hinter" dem "A", also p > u in diesem Fall (und p = u, wenn nach dem "A" gesucht wurde).
MfG,
Probe-Nutzer