Zeichenkette (’string‘,’string‘,’string‘,’string‘,’chain‘) steht für. Das Werteintervall des Datentyps String ist die Menge aller Zeichenketten. Zeichenketten sind in Anführungszeichen eingeschlossen; Beispiele für Zeichenketten sind „abba“, „Hello Fritz! Zeichenkette boolean miteinander. length(). Liefert ein Zeichen. int char substring(i,j).
Zeichenfolge
Die Zeichenfolge ist eine begrenzte Abfolge von Schriftzeichen (z.B. Briefe, Zahlen, Sonderzeichen und Kontrollzeichen ) aus einem bestimmten Zeichenvorrat. In einem String können beliebige Charaktere wiederholt werden, die Zeichenfolge ist festgelegt. Auch eine Zeichenfolge kann frei sein, d.h. sie darf keine Leerzeichen beinhalten und eine Zeichenlänge von 0 haben.
Strings sind Folgen von endlichen Zeichenfolgen. Eine Zeichenfolge ist in der Programmplanung ein Zeichensatz, der eine Folge von festen oder variablen Buchstaben ist. Dies wird vor allem zum Speichern von Wörtern, Sätzen und ganzen Texten verwendet. Nahezu jede Sprache hat einen solchen Typ und einige Sprachen funktionieren nur mit diesem Typ.
Strings repräsentieren im Quellcode eines Computerprogrammes Texte, die nicht als Programmierbefehle verstanden werden, sondern Informationen enthalten. Beispielsweise können Fehlernachrichten oder andere Nachrichten an den Anwender als Zeichenfolge im Quellcode aufgezeichnet oder Benutzereinträge als Zeichenfolge in Variable gespeichert werden. In der Theorie der Informatik werden die Grundkenntnisse der Programmiersprache vermittelt.
Der angegebene Schriftzeichensatz wird dort als Buchstaben und die Zeichenfolgen als „Wörter“ dargestellt. In Verbindung mit der Programmiersprache ergeben sich dagegen Fragestellungen zur Anzeige, Ablage und Handhabung von Schriftzeichen. Zeichenfolgen können auf unterschiedlichen Stufen dargestellt werden. Ein weiterer ist, wie ein String zur Programmlaufzeit im Arbeitsspeicher liegt.
In der Regel wird ein literaler String in den Sprachen durch die simple Aneinanderreihung von Buchstaben dargestellt. Die erste Möglichkeit, das Hochkomma als Teil der Zeichenfolge einzufügen. „Zweite Möglichkeit, eine’Dritte Möglichkeit, eine“‘ einzufügen: Solche Zeichenketten müssen in der Regel in einer einzelnen Linie vermerkt werden.
Allerdings können in einigen Sprachen, wie z.B. Phyton, durch dreifache Hochkommata getrennte Zeichenfolgen mehrere Linien enthalten. Beispielsweise kann ein Buchstabe aus dem benutzten Buchstabenvorrat als abschließendes Buchstabe festgelegt werden. Ein String stoppt dann vor dem ersten Auftreten dieses Zeichners.
Sie können die Stringlänge auch getrennt abspeichern. Die Zeichenfolgen werden in einer Programmiersprache wie z. B. der Programmiersprache K kontinuierlich im Arbeitsspeicher gespeichert und mit dem Nullenzeichen (NUL in ASCII) beendet. Der Nullpunkt ist dasjenige, dessen Binärdarstellung nur aus Null ist. Im folgenden Beispiel wird gezeigt, wie ein String von 5 Stellen in einem 10 Bytes langen Buffer gespeichert werden kann:
Der obige String hat eine Größe von 5, erfordert aber 6 Byte im Zwischenspeicher. Briefe nach dem NUL-Zeichen sind nicht mehr Bestandteil der Zeichenfolge; sie können zu einer neuen Zeichenfolge gehört oder ganz normal unbenutzt sein. Ein String in der Form eines Arrays vom Type Zeichen, bei dem der String ein Leerzeichen als Endekennung hat.
Daher werden solche Strings auch als null-terminiert betrachtet, ein alter Ausdruck ist ASCIIZ-String. Weil das Nullenzeichen selbst auch den von der Zeichenfolge belegten Platz beansprucht, ist der Platzbedarf einer Zeichenfolge immer mind. 1 Stelle höher als die Nutzlänge der Zeichenfolge. Die “ Zeichenkettenlänge “ ist die Zahl der Stellen vor der Endebezeichnung.
Dies hat den großen Vorzug, dass die Stringlänge nur durch den zur Verfügung stehenden Arbeitsspeicher und nicht mehr durch die Größe des Längenfelds limitiert wird; ein weiterer großer Unterschied besteht darin, dass es keine Nullzeichen beinhalten kann und die Handhabung relativ kompliziert und umständlich ist.
Ein anderer Weg, Strings zu speichern, wird in den Sprachen PassCal, Basics, PL/I und anderen verwendet: Die so gespeicherten Strings dürfen eine gewisse Anzahl von Strings nicht übersteigen. Beispielsweise wird in Turbopascal die Baulänge im Nullzeichen abgespeichert. Weil ein Buchstabe 8 Bits lang ist, ist die Zeichenlänge auf 255 beschränkt.
In der Nachfolgersprache Objekt Paßcal wurde das Feld auf 31 Bits verlängert und es werden Zeichenfolgen von bis zu 2 Gigabytes Größe akzeptiert. Aber auch in diesem Fall wird die Größe in vier Byte abgespeichert, so dass die Längenfeldgrenze nicht größer als die Speichergrenze ist. Das Speichern von Strings nimmt viel Platz in Anspruch und ist eine sehr übliche Angelegenheit.
Daher nutzen viele der höheren Sprachen eine spezielle Administration, um diese so effektiv wie möglich zu machen. Alle Strings werden in einem gemeinsamen „Pool“ zwischengespeichert. Die Zielsetzung ist, dass jeder gewünschte String nur einmal abgespeichert wird. Der Variablen im Anwenderprogramm wird nur eine ID-Nummer zugewiesen, damit sie bei Bedarf auf die Zeichenfolge zugreift.
Bei jeder Ablage eines Strings prüft das System, ob ein String mit dem gleichen Inhalt bereits bekannt ist. Wenn dies der Fall ist, wird die ID-Nummer der vorhandenen Zeichenfolge zurückgeliefert, andernfalls muss sie erneut erzeugt werden. Bei jedem Speichern eines Strings wird dessen Referenz-Zähler um eins inkrementiert. Wenn an einer Programmstelle eine Zeichenfolge nicht mehr gebraucht wird (weil ein Subroutine abgebrochen wird und die darin enthaltene Literatur bedeutungslos wird, oder weil einer Variablen ein anderer Inhalt zugewiesen wird), wird dies an die Administration zurückgemeldet und der Referenz-Zähler um eins reduziert.
Auf diese Weise können Sie bestimmen, welche der hinterlegten Zeichenfolgen gerade benutzt werden – wenn der Referenz-Zähler den Nullwert hat, wird er momentan nicht benötigt. Dies würde es ermöglichen, die Administration zu organisieren und nicht benötigte Zeichenfolgen zu entfernen, wenn es einen Engpass im Speicherbereich gibt (Garbage Collection). Das wird jedoch weitestgehend verhindert, da es vorkommen kann, dass bei jedem Unterprogrammaufruf immer wieder identische Zeichenfolgen vergeben werden; die erweiterte Administration erfasst auch die Speicherhäufigkeit und entfernt nur Zeichenfolgen, die wenig genutzt und lang sind.
Wenn es sich um eine Sprache zur Kompilierung eines Quelltextes und Speicherung des Ergebnisses in einer Objekt-Datei handelt, bekommen die daraus entstehenden Zeichenfolgen in der Regel eine vergleichbare Tabellenverwaltung in ihrem Datenteil, nachdem alle Präprozessoroperationen aufgelöst wurden. Bisher wurden 8 Bits, die einem einzigen Buchstaben entsprechen, benutzt, um ein einzelnes Wort darzustellen, was bis zu 256 unterschiedliche Buchstaben erlaubt.
Das ist nicht genug, um Schriftzeichen aus vielen Sprachen und vor allem nicht-lateinische Schriftzeichen wie z.B. griechische Schriftzeichen parallel zu verarbeit. Währenddessen stellen die Sprachen 2 Bytes oder 4 Bytes für die Ablage eines einzigen Buchstabens zur Verfügung; daher wird heute das Wortbyte in diesem Kontext vermieden und gemeinhin als zeichne.
Alle System-Funktionen, die Zeichenfolgen benutzen, sind unter MS Word in einer Ausführung mit einem nachfolgenden Buchstabenkombination ( „A“ für ASI, d.h. 1 Bit nach DIN EN 8859 ) und einem nachfolgenden Buchstabenkombination („W“ für Breitband, Multibyte) zu haben. Es gibt auch Präprozessor-Makros für die Sprachen für die Programmierung in den Sprachen für die Sprachen für die Programmierung und für die Programmierung von Programmen, mit deren Unterstützung alle Standard-Funktionen und literalen Funktionen in einer undefinierten Fassung im Quellcode vermerkt werden können; die aktuell passende Funktionalität wird dann bei der Übersetzung verwendet.
Es ist heute in nahezu allen gängigen Sprachen verbreitet, mehrere Datenbytes für ein einziges Zeichen zu benutzen und die grösseren Ziffern nach dem Prinzip des“ UCS“ („Unicode“) zu speichern. Wenn die Codierung kleiner als 128 ist (ein „ASCII-Zeichen“), wird das entsprechende Symbol beibehalten. Wenn dagegen das Bit einen Wertebereich von 128 hat, so wird dies als Anfang einer Folge von mehreren aufeinanderfolgenden Bit, die ein einziges Merkmal darstellen, gedeutet.
Wenn solche Buchstaben gefunden werden und mehrere Byte für die innere Darstellung zur Verfügung stehen, sollte die Decodierung so frühzeitig wie möglich (während des Importvorgangs) stattfinden, da man später nicht mehr erkennen kann, wie diese Reihenfolge war. Grundlegende Operationen mit Zeichenfolgen, die in nahezu allen Sprachen auftreten, sind Längen, Vervielfältigen, Vergleichen, Verknüpfen, Bildung von Teilstrings, Pattern-Erkennung, Suche nach Teilstrings oder Einzelzeichen.
Der Zuordnungsoperator ( „=“ oder“:=“) wird verwendet, um Zeichenfolgen in vielen übergeordneten Sprachen zu übernehmen. Der Zeitaufwand für das Übertragen von Daten ist in hohem Maße von der Darstellung der Zeichenfolgen abhängig. Bei anderen Prozeduren muss die Zeichenfolge ggf. vollständig zugeordnet und mitkopiert werden. Viele höhere Sprachen unterstützen den Vergleich von Strings gleicher und unterschiedlicher Zeichen mit den Operatoren“=“ oder““ oder“! =“.
Der erste Buchstabe hat den höchsten Wert. In vielen Programmierungssprachen werden Operationen wie „+“ (BASIC, Pašcal, Phyton, Java, C++), „&“ (Ada, BASIC),“ “ (Perl, PHP) oder „|||“ (REXX) angeboten. Zum Hinzufügen eines weiteren Strings zu einem bestehenden String bieten einige Sprachversionen einen eigenen Benutzer („+=“ in Javascript und Python,“. =“ in Javascript und PHP).
Normalerweise wird der Operator nicht nur am Ende hinzugefügt, sondern der Begriff alt+new wird bewertet und der Variable alt zuerkannt. Allerdings gibt es viele moderne Programmierungssprachen wie z. B. Javascript, C-Sharp oder VBA.
Net String-Builder-Klassen, die änderbare Zeichenketten wiedergeben. String und String-Builder sind jedoch in der Regel nicht austauschbar, sondern müssen konvertiert werden. Nacheinander geschriebene Zeichenketten (mit oder ohne Leerzeichen) werden in einigen Programmiersprachen (C, Cytox, Phyton, REXX) stillschweigend aneinandergereiht. Eine Teilzeichenkette kann durch Eingabe (Zeichenkette, Anfangsindex, Endindex) oder (Zeichenkette, Anfangsindex, Länge) einmalig sein.
Manche Sprachen, wie z.B. die Programmiersprache Phyton, stellen für diese Aktion syntaktische Zuckerbilder zur Verfügung (siehe Beispiele). Weil ein String durch Hochkommata getrennt ist, können sie nur über die Funktionen Chr(34) oder CHR$(34) in den String eingefügt werden, der 34 ist der ASCII-Code des Hochkommas. Es können mehrere Strings (je nach BASIC-Dialekt) mit dem Plustaste oder mit dem UND „&“ des Händlers zu einem verknüpft werden: text2$ = „***“ + text$+ “ ***“ text2$ = „***“ u. text$ u. „***“ Dieses C-Programm legt zwei String-Variablen fest, von denen jede 5stellig sein kann.
Weil ein String mit einem Leerzeichen endet, muss das Feld 6-stellig sein. In beide Variable wird dann der Schriftzug „FRANK“ mitkopiert. Zum Anhängen von zwei Zeichenfolgen gibt es die Standard-Funktion strcat(). Zeichenkette tex1 = „FRANK“; Zeichenkette text2 = tex1; Zeichenkette in Javascript sind ein Objekt der Kategorie String. Das Verketten von Zeichenfolgen wird durch den (in diesem Falle überlasteten) Plus-Operator durchgeführt:
Ich bin ein langer Klartext mit Hochkommata wie “ oder‘ Heredok; der Klartext wird mit einem Komma verkettet. $text =“FRANK“‘; $text =“FRANK“; $text =“FRANK“‘.
„ESTEIN“; // $text liefert „FRANKENSTEIN“ $text = „FRANK“; $text . ESTEIN“; // $text liefert „FRANKENSTEIN“ In der Datei wird alles – auch Nummern – als String dargestellt. Ein Stringwert wird einer Variabel zugewiesen: a = „Ottos Pug“ Die nachfolgenden Begriffe geben je den Namen „Ottos Pug“ an: „Ottos“ „Pug“ „Ottos“ |||||‘ Pug‘ „Ottos“‚ Pug“ Nehmen wir an, die Variabel s enthält den String“ 0ttos Pug springt weiter.
Danach können das erste und die ersten fünf Buchstaben (Ottos), das siebente bis zehnte (Pug) und die vier letztgenannten (Fort) wie folgend bestimmt werden: Der erste Buchstabe hat den Wert 0. xxx kann auch Zeichenketten Wort für Wort bearbeiten, wodurch Worte durch (beliebig viele) Leerstellen voneinander abgetrennt werden. Der erste Buchstabe hat, wie bei Pascal-Strings, den Wert 1 x 1 x 2 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 2 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 2 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 1 x 1 x 1 x 1 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 1 x 0.
Verwendung der StrUtils-Einheit: Unterschiedliche Verfahren funktionieren hauptsächlich mit Strings: String-Matching-Algorithmen prüfen, ob ein String Teil eines grösseren Strings ist. Wenn Strings aus der Aussenwelt in die Innenrepräsentation übertragen werden, sollten spezielle Vorsichtsmassnahmen ergriffen werden. Zusätzlich zu ungewollten Kontrollzeichen und Formatierungen muss die Maximallänge der Zeichenfolge überprüft werden.
Zur Aufzeichnung steht ein 16-stelliger String mit einer festen Zeichenlänge zur Verfügung, der für alle zulässigen Nummern ausreicht. Selbst wenn irrtümlich anstelle von Tabulator ein identisch aussehender Leerraum erscheint, ist das Ergebnis mehr als 16-stellig. Das System ist bestrebt, einer String-Variablen einen Content zuzuordnen, dessen Dauer die der Variable überschreitet.
Falls die Validität nicht bereits in einer überschaubaren Arbeitsumgebung kontrolliert wurde, sollten Stringoperationen nur mit einer Funktion ausgeführt werden, die die Maximallänge des Strings prüft. Jedem Einzelzeichen wird in jedem Rechnersystem ein numerischer Wert (in der Regel ein Binärwert) zugewiesen, nach dem es mit einem anderen Buchstaben auf gleich, grösser oder kleiner vergleichbar ist.
Bei der Erkennung von Dubletten in einem Satz von Zeichenketten kommt es nur auf die Gleichwertigkeit an, aber wenn die Funktion auch die Resultate entsprechend den Spielregeln einer Gesamtreihenfolge immer kleiner und grösser anbietet, kann die Dublettenerkennung mit binärer Suche viel effektiver durchgeführt werden. Aufgrund des fallenden Wertes der Buchstaben mit steigender Anschrift vergleicht die Operatoren der einzelnen Sprachen, aber auch die C-Funktionen strcmp(), strncmp(), memcmp() auf jeder einzelnen Rechner im Big-Endian-Stil.
Leave a Reply