Artikel pedia
| Home | Kontakt | Artikel einreichen | Oberseite 50 artikel | Oberseite 50 autors
 
 


Artikel kategorien
Letztes fugte hinzu
    Ms-access

   Instrumentation + schnittstellen

   Pc tuning - volle kraft voraus für ihr system

   Informatorische grundlagen

   Javascript

   Interne sortieralgorithmen - der kern der sache

   Plotter und sonstige drucker

   Frage 20 (rössl priska)

   Internet - programmierung

   Monitore

   Semesterarbeit und spezialgebiet für informatik

   Erörterungs zum thema

   Inhaltsverzeichnis

   Einführung in die entwicklung ganzheitlicher informationssysteme:

   Titel dokument
alle kategorien

  1

1. Definition 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". 4.

Belegung von Zeichenketten 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.   Tabellarische Übersicht   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.compareTo(".."); 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) Text2 = Right$(Text,2) Text2 = Mid$(Text,3,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 Text = Text & Text2 Strcat(Text,Text2); Ergebnis=Text+Text2; Ergebnis=Text&Text2; STRING Text Text2 DELIMITED BY SPACE INTO Text.

   

Suchen artikel im kategorien
Schlüsselwort
  
Kategorien
  
  
   Zusammenfassung Der Vorleser

   sachtextanalyse

   interpretation zwist

   Fabel interpretation

   literarische charakteristik

   interpretation bender heimkehr

   felix lateinbuch

   interpretation der taucher von schiller

   textbeschreibung

   charakterisierung eduard selicke
Anmerkungen:

* Name:

* Email:

URL:


* Diskussion: (NO HTML)




| impressum | datenschutz

© Copyright Artikelpedia.com