Re: String Frage



Moin,

Edi schrub:

Ich hab das jetz ausprobiert und auch die Tips aus den
folgepostings, witzig ist der Teil aus deinem Code:
| 0x80

für was ist der ? Weil ohne dem, kann es passieren das ein
Leerzeichen rauskommt, und beim zurück umwandeln
wandelt er das Leerzeichen nicht mehr und somit ist die
Rückumwandlung ungleich dem Original.
Das wäre doof :)

Als Beispiel wo so ein Leerzeichen rauskommen würde:
....

Kann ich nicht 100% nachvollziehen, aber:

Die üblichen druckbaren Zeichen liegen im ASCII-Zeichensatz
zwischen den Codenummern 33 bis 127. Die Zeichen 0..32 (?) sind
formatierungszeichen, so was wie Zeilenende, Seitenvorschub,...
Die Zeichen über 127 sind traditionell uneinheitlich definiert
und enthalten Umlaute und andere komische Sonderzeichen,
darunter eventuell auch solche, die auf gewissen Systemen nicht
angezeigt werden können. Es mag mancherorts so sein, dass
Zeichen aus diesem Bereich als Leerzeichen angezeigt werden.
Oder garnicht. Wer weiß was sich da alles für verschiedene
Zeichensatzdefinitionen verhaken können....

Die Sache mit dem 0x80 (oder dezimal 128) tut folgendes:

Wollte man folgendes verschlüsseln mit
Text: abcdef...
Schlüssel: 123d45...
passiert: ***

*: keine Lust das auszurechnen. Aber dann: Ein Buchstabe wird mit
sich selbst verschlüsselt, die xor-Verknüpfung liefert in diesem
Fall als Ergebnis eine 0. Nicht das Zeichen '0', sondern die
Zahl Null, welche als Ende der Zeichenkette interpretiert wird.

Das Setzen des höchsten Bit (0x80 oder dezimal 128) führt dazu,
dass der Schlüssel auf allen seinen Zeichen das höchste Bit
gesetzt hat. Wenn der Text dieses nicht hat, weil es nur
normaler lesbarer Text ohne Sonderzeichen ist, dann kann es
nicht mehr passieren, dass im Schlüssel die gleiche Codenummer
steht, wie im Text.

Und übrigens Leerzeichen: Bei der Eingabe wird sowieso nur bis
zum ersten Leerzeichen gelesen. Da steht ein scanf("%s... und
das liest als Zeichenkette nur Zeichenketten ohne Leerzeichen.
Du darfst bei dem kleinen Programm also garkeine Leerzeichen
eingeben. Allerdings dürfen Zeichenketten sehr wohl Leerzeichen
beinhalten, nur kann man solche nicht via scanf("%s... einlesen,
da muss man dann was anderes machen (getline oder sowas).

CU Rollo
.



Relevant Pages

  • Re: Zeichenkette Filtern
    ... ich hab die Formel kopiert, wenn nur nach den Leerzeichen gesucht wird ... Ich sucheine Zeichenkette mit 3 ... Gibt es einen Weg um zu erkennen ob die letzten 5 Zeichen Ziffern sind? ...
    (microsoft.public.de.excel)
  • Re: Gemuetlichkeit
    ... Zeichen inklusive Leerzeichen, Zeichen ohne Leerzeichen oder ... Zeichen inklusive Leerzeichen. ... Everything is within a range of a few percent, and the longest in letters is ...
    (de.etc.sprache.deutsch)
  • Re: Gemuetlichkeit
    ... Zeichen inklusive Leerzeichen, Zeichen ohne Leerzeichen oder ... purer Text ohne Textauszeichnung) in unterschiedlichen Sprachen ... gekommen, als ich mal versucht habe, einen kurzen Liedtext in Swahili zu ...
    (de.etc.sprache.deutsch)
  • Re: Text eines Memofeldes aufteilen Acc97
    ... Aber um sie in dem Strom vorhandener Zeichen unterscheiden ... Bei *welchem* Leerzeichen ist denn da die Artikelbezeichnung zuende? ... > neue Tabelle bringen. ... Artikelnamen gibt? ...
    (microsoft.public.de.access)
  • Re: Langtexte aufteilen
    ... Hier ist ein langer Text, der viele Buchstaben und so hat. ... Er darf pro neue Zelle nur 20 Zeichen haben. ... zwischen dem letzten Hochkomma einer Zeile und den führenden ... Hochkomma der nächsten Zeile steht ein Leerzeichen, ...
    (microsoft.public.de.excel)