Betriebstechnik | Biographien | Biologie | Chemie | Deutsch | Digitaltechnik |
Electronica | Epochen | Fertigungstechnik | Gemeinschaftskunde | Geographie | Geschichte |
Informatik | Kultur | Kunst | Literatur | Management | Mathematik |
Medizin | Nachrichtentechnik | Philosophie | Physik | Politik | Projekt |
Psychologie | Recht | Sonstige | Sport | Technik | Wirtschaftskunde |
Ähnliche Berichte:
|
Projekte:
|
Papers in anderen sprachen:
|
informatik referate |
Eine Zeichenkette (String) ist eine Aufeinanderfolge von darstellbaren Zeichen, die sequentiell im Speicher angeordnet sind und gemeinsam angesprochen werden. Jedes einzelne Zeichen wird entweder durch ein Byte oder ein Wort codiert dargestellt. Strings haben immer eine aktuelle Länge, die den gerade gespeicherten Zeichen entsprechen und eine maximale Länge. Die interne Speicherung ist von Programmiersprache zu Programmiersprache verschieden.
2. Interne Speicherung der Zeichenketten
Visual Basic
In Visual Basic
wird die Länge des Strings mitgespeichert. Die maximale Länge ist
auf ca. 65000 Zeichen begrenzt
(16-Bit Version). Die Maximallänge muss nicht angegeben werden, da sich Visual
Basic immer den benötigten Speicherplatz nimmt.
C/C++
In C/C++ wird eine Zeichenkette mit 0 abgeschlossen. Die Länge muss bei Bedarf immer wieder neu ermittelt werden, ist jedoch 'unbegrenzt'. Es gibt keinen eigenen Typ, daher werden Strings immer mittels eines Zeichenarrays (char-Array) verwirklicht.
In C++ gibt es innerhalb von Klassenbibliotheken (z.B. MFC) einen eigenen Typ für Strings, bei dem C++ den benötigten Speicherplatz an die Länge anpaßt.
JAVA
In JAVA gibt es einen eigenen Typ für Strings, bei dem JAVA den benötigten Speicherplatz an die Länge anpaßt.
Cobol
In Cobol ist eine Zeichenkette eine Aneinanderreihung von alphanumerischen Zeichen. Der Text wird immer linksbündig eingefügt, wobei die überstehenden Stellen abgeschnitten werden. Ist der String kleiner als die vereinbarte Anzahl, wird der Rest mit Blanks aufgefüllt.
3. Vereinbarung von Zeichenketten
Visual Basic
Es gibt zwei
Möglichkeiten zur Vereinbarungen, nämlich explizit und implizit. Die
Variable muss vor ihrer Verwendung nicht vereinbart werden. Um sie eindeutig
als String auszuweisen, muss nach dem Namen ein $ angefügt werden (Text$
= 'HALLO'), sonst ist die Variable vom Datentyp Variant. Um bei der
Verwendung nicht $ schreiben zu müssen, kann man die Variable explizit
vereinbaren (z.B. Dim oder Static).
Z.B.:
Dim Text As String
Auch hier kann bei
der Vereinbarung eine fixe Länge angegeben werden, wobei der Rest mit Blanks
aufgefüllt wird.
Z.B.:
Dim Text As String * 25 'String mit 25 Zeichen wird vereinbart
C/C++
In C/C++ muss
immer eine Längenangabe angegeben werden, wobei diese um 1 zu erhöhen
ist, um die abschließende 0 speichern zu können.
Z.B.:
char Text[26]; // String mit 25 Zeichen wird vereinbart (0!!)
In C++/MFC gibt es eigens für Zeichenketten, den Typ CString. Die Länge muss nicht angegeben werden.
CString Text;
JAVA
Es gibt jedoch eine
um einiges einfachere Methode einen String anzulegen, ähnlich der in C++.
Z.B.:
String Text;
Auch in JAVA kann der String gleich bei der Vereinbarung initialisiert werden.
String s2 = 'Karl';
Cobol
In Cobol
erfolgt die Vereinbarung in der Data Division.
Z.B.:
77 Text PIC X(25).
Der String kann auch gleich bei der Vereinbarung initialisiert werden.
77 Text PIC X(25) value 'Hallo'.
Visual Basic
Bei einem String ohne
fixer Länge braucht sich der Programmierer nicht um die Länge kümmern, da
Visual Basic die Länge des Strings automatisch anpaßt.
Bei einem String mit fixer Länge werden die Zeichen abgeschnitten, falls
der String länger als vereinbart ist.
Z.B.:
Text =
'Hallo'
Text = Text2
C/C++
In C/C++
können Zeichenketten nicht direkt in Zuweisungen verwendet werden, sondern nur
mit sprintf, strcpy und strncpy.
Z.B.:
sprintf(Text,'%s','Hallo');
// sprintf wird jedoch normalerweise nur zu Typenkonvertierung verwendet.
sprintf(Text,'%s',Text2);
strcpy(Text,'Hallo'); // üblichere Methode zum kopieren eines Strings
strcpy(Text,Text2); // Inhalt von Text2 nach Text
Bei strncpy werden
nur ein n-Anzahl von Zeichen kopiert, die Funktion hängt zum Unterschied
von strcpy nicht immer 0 an den String. Die 0 muss daher vom
Programmierer selbst nach dem strncpy angehängt werden.
Z.B.:
strncpy(Text,Text2,
3); // 3 Zeichen von Text2 werden nach Text kopiert
Text[3] = '0'; // am Ende des Textes wird die '0' angehängt
Der Programmierer muss selber darauf achten, dass der Zielstring genügend gross ist, da sonst der dahinterliegende Speicherplatz überschrieben wird.
In C++/MFC können
Zeichenketten, die vom Typ CString sind, auch direkt in Zuweisungen verwendet
werden.
Z.B.:
Text =
'Hallo';
Text = Text2;
JAVA
Bei einer
Zeichenkette die mit dem Befehl String definiert wurde, braucht sich der
Programmierer nicht um die Länge des String zu kümmern, da die Länge des
Strings automatisch angepaßt wird.
Z.B.:
Text =
'Hallo';
Text = Text2;
Cobol
Hier erfolgt die
Wertzuweisung mit dem Befehl move.
Z.B.:
move
'Hallo' to Text.
move Text2 to Text.
5. Ein-/Ausgabe von Zeichenketten
Visual Basic
Die Eingabe
erfolgt mittels Steuerelement (Textfeld, Listbox, ), während die Ausgabe
zusätzlich noch mit der Methode print erfolgen kann.
Z.B.:
Print Text
C/C++
In C erfolgt
die Eingabe mittel gets und scanf. Bei gets wird bis zum Zeilenende
gelesen, und es können keine Formatierungen vorgenommen werden, bei scanf
schon. Bei einer Eingabe von Blanks und Tabulator speichert gets sie im String,
scanf bricht bei dem ersten Blank oder Tabulator ab.
In C++ hat man zusätzlich noch die Funktion cin, bei der auch beim
ersten Whitespace Zeichen abgebrochen wird, und keine Formatierung vorgenommen
werden können.
Z.B.:
gets (Text);
scanf ('%s',Text);
cin >> Text;
Die Ausgabe
erfolgt mittels den Funktionen puts, printf und in C++ zusätzlich noch
mit cout. Während die Funktionen puts und cout keine Formatierung zulassen,
kann man bei printf Formatierungen angeben.
Z.B.:
puts (Text);
printf ('%-20s',Text); // Hier werden 20 Zeichen des Strings
rechtsbündig ausgegeben
cout << Text;
JAVA
Die Eingabe
erfolgt mittels Steuerelementen (Textfeld, Listbox, ) oder mittels
Z.B.:
System.in . // etwas kompliziert
während die Ausgabe zusätzlich noch mit
der Methode drawString erfolgen kann.
Z.B.:
System.out.println(Text);
Cobol
Die Eingabe erfolgt mittels:
ACCEPT Text FROM TERMINAL.
Die Ausgabe erfolgt mittels:
DISPLAY Text UPON TERMINAL.
6. Vergleichen von Zeichenketten
Visual Basic
In Visual Basic ist ein direkter Vergleich möglich, die zugelassenen Operatoren sind: <, <=, =, >=, >, <>
C/C++
In C ist kein direkter Vergleich möglich, daher muss man eine der Funktionen strcmp, stricmp oder strncmp nehmen. In C wird der ASCII-Code der einzelnen Zeichen verglichen.
Strcmp liefert 0
zurück falls die beiden Strings gleich sind, einen Wert kleiner 0 falls
der erste Parameter kleiner als der zweite, und einen Wert größer 0
falls der erste Parameter größer als der zweite ist.
Z.B.:
strcmp ('Haus', 'haus'); // Ergebnis: -1, da der 1. Parameter kleiner als der 2. Ist
Stricmp vergleicht
zwei Strings miteinander, wobei es die Groß- und Kleinschreibung ignoriert.
Der Rückgabewert ist genauso wie bei strcmp.
Z.B.:
stricmp ('Haus', 'haus'); // Ergebnis: 0, da stricmp Groß- und Kleinschreibung nicht unterscheidet!
Strncmp vergleicht
die ersten n-Zeichen von zwei Strings. Der Rückgabewert ist wieder
gleich wie bei den beiden vorhergehenden.
Strncmp unterscheidet zwischen Groß- und Kleinschreibung!
Z.B.:
strncmp ('Jagd', 'Jagdhaus', 4); // Ergebnis: 0, da ersten 4 Zeichen gleich sind.
Wird in C++ eine Variable vom Typ CString vereinbart, ist auch hier ein direkter Vergleich möglich, die zugelassenen Operatoren sind: <, <=, ==, >=, >, !=
JAVA
In JAVA ist, kein
direkter Vergleich möglich, statt dessen gibt es die Methoden der
String-Klasse, equals oder compareTo .
Z.B.:
Text.equals(Text2); // liefert
true wenn Text gleich Text2 ist
Text.compareTo(Text2); // funktioniert wie strcmp in C
Cobol
In Cobol ist
ebenso ein direkter Vergleich möglich, wobei in Cobol 74 die Vergleichswörter: not,
greater, less, equal verwendet werden.
In Cobol 85 kommen noch die Vergleichswörter: greater or equal, less or
equal dazu.
7. Ermitteln der aktuellen Stringlänge
Visual Basic
In Visual Basic
wird die aktuelle Stringlänge mit der Funktion Len ermittelt. Die Funktion
liefert als Return-Wert einen Integer-Wert.
Z.B.:
Laenge = Len (Text)
C/C++
In C/C++ wird
die aktuelle Stringlänge mit der Funktion strlen ermittelt. Die Funktion
liefert als Return-Wert einen Integer-Wert.
Z.B.:
Laenge = strlen (Text);
JAVA
In JAVA wird
die aktuelle Stringlänge mit der Methode length ermittelt. Die Funktion liefert
als Return-Wert einen Integer-Wert.
Z.B.:
Laenge = Text.length();
Cobol
In Cobol hat der String immer die vereinbarte Länge, deshalb gibt es keine Funktion die die aktuelle Länge ermittelt.
8. Bearbeiten von Zeichenketten
8.1. Zeichenweiser Zugriff
Visual Basic
In Visual Basic kann man jedes Zeichen mit der Funktion Mid ansprechen.
Zeichen = Mid
(text,Position,1)
Mid (text,Position,1) = 'a'
C/C++
In C kann man die einzelnen Zeichen über den Index von 0 bis Länge des Strings - 1 ansprechen.
JAVA
In JAVA kann man die einzelnen Zeichen über den Index von 0 bis Länge des Strings ansprechen.
Cobol
In Cobol erlauben nur einige Compiler den Zugriff auf einzelne Stringkomponenten, eine andere Alternative ist daher die Vereinbarung eines Strings als Tabelle:
01 Text.
05 Element PIC X OCCURS 20 TIMES.
8.2. Teilstring suchen (Im String Text wird nach Suchstring gesucht!)
Visual Basic
In Visual Basic gibt die Funktion Instr , welche die Position des ersten Zeichens des Suchkriteriums innerhalb von Text zurückliefert. Liefert die Funktion 0, wurde der Suchstring im Text nicht gefunden.
Position = Instr(Suchstring, Text)
C/C++
In C/C++ steht meistens die Funktion strstr zur Verfügung, die einen Zeiger auf den gefundenen Suchstring im String Text oder NULL bei nicht gefunden, zurückliefert.
Zeiger = strstr (Text,Suchstring);
JAVA
In JAVA gibt es keine Standardfunktion zum 'Suchen eines Teilstrings'.
Cobol
In Cobol gibt es keine Standardfunktion zum 'Suchen eines Teilstrings'.
8.3. Teilstring herauskopieren
Visual Basic
In Visual Basic gibt es Left$, Right$ und Mid$, wobei Left$ liefert die ersten Zeichen des String, Right$ liefert die letzten Zeichen des Strings und Mid$ liefert die Zeichen ab der Position vom String, die Zählung beginnt bei 1. Z.B.:
Text =
'12345678'
Position = 4
Ziel = Mid$ (Text,Position,4) // Ziel = 4567
C/C++
In C/C++ gibt
es die Funktion strncpy, die einen Positionszeiger, nämlich Text übergeben
bekommt, und von dieser Position an Anzahl Zeichen kopiert. Der Nachteil dieser
Stringfunktion ist, dass sie keine anschließende '0' anhängt, und daher muss
sich der Programmierer selbst darum kümmern.
Z.B.:
strcpy (Text,
'12345678');
strncpy (Ziel, Text +3, 4); // Ziel = 4567
Ziel[4] = '0';
JAVA
In JAVA gibt es keine Standardfunktion zum 'Teilstring herauskopieren'.
Cobol
In Cobol gibt es keine Standardfunktion zum 'Teilstring herauskopieren'.
8.4. Teilstring einfügen
Es gibt in den beschriebenen Programmiersprachen keine Standardfunktion um ein Teilstring einzufügen. In den angegebenen Programmiersprachen muss diese Funktion vom Programmierer selbst implementiert werden.
8.5. Teilstring löschen
(Text: Hello Miss America!
Ergebnis: Hello America!)
Auch hierzu muss
meistens der Programmierer selbst Hand anlegen.
In C kann man mit der Funktion strcpy arbeiten um einen Teilstring zu
löschen.
Z.B.:
Strcpy (Text+6, Text +11);
8.6. Teilstring ersetzen
Hierfür gibt es in
keiner der beschriebenen Programmiersprachen eine Standardfunktion.
In Visual Basic kann man mit der Funktion Mid die Zeichen im String
überschreiben, aber nicht ersetzen.
In den anderen Programmiersprachen muss man diese Funktion ausprogrammieren.
8.7. Teilstring anhängen
Visual Basic
In Visual Basic steht zum zusammenhängen zweier Strings einfach das + oder & zur Verfügung.
Ergebnis = Text1 +
Text2 oder
Ergebnis = Text1 & Text2
C/C++
In C/C++ steht zum zusammenhängen zweier Strings die Standardfunktion strcat zur Verfügung.
strcpy
(Ergebnis,Text1); // Text1 in Ergebnisstring kopieren
strcat (Ergebnis,Text2); // Text2 an Ergebnissstring anhängen
Zwei in C++/MFC
mit CString angelegte Zeichenkette, kann man auch mit + oder &
zusammenhängen.
Z.B.:
Ergebnis = Text1 +
Text2; oder
Ergebnis = Text1 & Text2;
JAVA
In JAVA werden zwei Strings wie in Visual Basic mittels + und & zusammengehängt.
Cobol
In Cobol steht zum zusammenhängen zweier Strings die Standardfunktion STRING zur Verfügung.
STRING Text1 Text2 DELIMITED BY SPACE INTO Ergebnis.
|
Visual Basic |
C/C++ |
JAVA |
Cobol |
Vereinbarung |
Dim Text As String |
Char Text[anz+1]; |
String Text; |
77 Text PIC X (anz). |
Zuweisung |
Text$ = 'Hallo' |
Strcpy (Text, 'Hallo'); |
Text = 'Hallo'; |
MOVE 'Hallo' TO text. |
Vergleich |
Text = 'Hallo' |
Strcmp(Text,'Hallo'); |
Text.equals('Hallo'); |
Text = 'Hallo' |
Länge ermitteln |
Len (Text) |
Strlen (Text); |
Text.Length(); |
Keine Standardfunktion |
Teilstring suchen |
Pos = Instr(Text, 'al') |
Zeiger = strstr(Text, 'al'); |
Keine Standardfunktion |
Keine Standardfunktion |
Teilstring herauskopieren |
Text2 =
Left$(Text,2) |
Strncpy(Text2,Text,2); |
Keine Standardfunktion |
Keine Standardfunktion |
Teilstring einfügen |
Keine Standardfunktion |
Keine Standardfunktion |
Keine Standardfunktion |
Keine Standardfunktion |
Teilstring löschen |
Keine Standardfunktion |
Keine Standardfunktion |
Keine Standardfunktion |
Keine Standardfunktion |
Teilstring anhängen |
Text = Text + Text2 |
Strcat(Text,Text2); |
Ergebnis=Text+Text2; |
STRING Text Text2 DELIMITED BY SPACE INTO Text. |
Referate über:
|
Datenschutz |
Copyright ©
2024 - Alle Rechte vorbehalten AZreferate.com |
Verwenden sie diese referate ihre eigene arbeit zu schaffen. Kopieren oder herunterladen nicht einfach diese # Hauptseite # Kontact / Impressum |