Fortran: Fortran 95: Standardfunktionen: Stringfunktionen

Aus Wikibooks

Lexikalische Funktionen[Bearbeiten]

Funktion Beschreibung
l = lge ( c1, c2 ) Lexikalisch größer oder gleich (Rückgabewert ist .true. wenn c1 >= c2). Der Stringvergleich basiert systemunabhängig immer auf dem  ASCII-Codierungsschema.
l = lgt ( c1, c2 ) Lexikalisch größer als (Rückgabewert ist .true. wenn c1 > c2). Der Stringvergleich basiert systemunabhängig immer auf dem  ASCII-Codierungsschema.
l = lle ( c1, c2 ) Lexikalisch kleiner oder gleich (Rückgabewert ist .true. wenn c1 <= c2). Der Stringvergleich basiert systemunabhängig immer auf dem  ASCII-Codierungsschema.
l = llt ( c1, c2 ) Lexikalisch kleiner als (Rückgabewert ist .true. wenn c1 < c2). Der Stringvergleich basiert systemunabhängig immer auf dem  ASCII-Codierungsschema.

Sonstige[Bearbeiten]

Funktion Beschreibung
i = len ( c ) Stringlänge bzw. reservierte Zeichenanzahl für die Stringvariable.

Beispiel:

  • len( "Wikibook" ) ⇒ 8
  • character(25) :: str = "Wikibook"
    len (str) ⇒ 25
i = len_trim ( c ) Gibt die Länge eines Strings ohne abschließende Leerzeichen zurück.

Beispiel: len vs. len_trim

  • character(25) :: str = "Wikibook"
    len (str) ⇒ 25
    len_trim (str) ⇒ 8
c = trim ( c ) Gibt einen String ohne abschließende Leerzeichen zurück.

Beispiel:

  • character(25) :: str1 = "Wiki", str2 = "book"
    str1 // str2 ⇒ Wiki_____________________book_____________________
    trim(str1) // trim(str2) ⇒ Wikibook

(Die Unterstriche _ symbolisieren im Beispiel Leerzeichen)

c = adjustl ( c ) Linksbündiges Ausrichten eines Strings.

Beispiel:

  • character(10) :: str = "__Wiki"
    adjustl( str ) ⇒ Wiki______

(Die Unterstriche _ symbolisieren im Beispiel Leerzeichen)

c = adjustr ( c ) Rechtsbündiges Ausrichten eines Strings.

Beispiel:

  • character(10) :: str = "__Wiki"
    adjustr( str ) ⇒ ______Wiki

(Die Unterstriche _ symbolisieren im Beispiel Leerzeichen)

c = repeat ( c, i ) Rückgabewert wird aus i Teilstrings c zusammengesetzt:

Beispiel:

  • repeat( "abc", 3) ⇒ abcabcabc
i = index ( c1, c2 [, back] ) Gibt die Position des Auftretens eines Teilstrings c2 in c1 zurück. c2 muss eine (benannte) Konstante sein.

Rückgabewert:

  • back nicht angegeben oder .false.: Startposition des ersten Auftretens des Teilstrings c2 in String c1
  • back = .true.: Startposition des letzten Auftretens des Teilstrings c2 in String c1
  • Gibt 0 zurück, wenn der Teilstring c2 nicht in String c1 enthalten ist

Beispiele:

  • index( "ABC1234ABC567ABC890", "ABC", .true. ) ⇒ 14
  • index( "ABC1234ABC567ABC890", "ABC" ) ⇒ 1
i = scan ( c1, c2 [, back] ) Prüft, ob ein String c1 Zeichen aus einem Zeichensatz c2 enthält.

Rückgabewert:

  • back nicht angegeben oder .false.: Position des ersten Auftretens eines Zeichens aus dem Zeichensatz c2
  • back = .true.: Position des letzten Auftretens einens Zeichens aus dem Zeichensatz c2
  • Gibt 0 zurück, wenn kein Zeichen des Zeichensatzes c2 in String c1 enthalten ist

Beispiele: Zeichensatz = (A, B, C)

  • scan( "ABC1234ABC567ABC890", "ABC", .true. ) ⇒ 16
  • scan( "ABC1234ABC567ABC890", "ABC" ) ⇒ 1
i = verify ( c1, c2 [, back] ) Prüft, ob ein String c1 Zeichen aus einem Zeichensatz c2 nicht enthält.

Rückgabewert:

  • back nicht angegeben oder .false.: Position des ersten Nichtauftretens eines Zeichens aus dem Zeichensatz c2
  • back = .true.: Position des letzten Nichtauftretens einens Zeichens aus dem Zeichensatz c2
  • Gibt 0 zurück, wenn alle Zeichen des Zeichensatzes c2 in String c1 enthalten sind

Beispiele:

  • verify( "ABC1234ABC567ABC890", "ABC", .true. ) ⇒ 19
  • verify( "ABC1234ABC567ABC890", "ABC" ) ⇒ 4