Frage von mAin0x, 12

Wer kann dies in eine Fortran Funktion umwandeln, die einen Logical zurueckgibt, ob ein String mit dem anderen startet?

Ich lerne Fortran gerade erst und ich verstehe viele Errors bei Funktionen nicht!

! Aufruf: ! < call starts_with (TestString, TestString Laenge, Teilstring, Teilstring Laenge) >

subroutine starts_with(str, str_lenght, sub_str, sub_str_lenght) implicit none

integer :: str_lenght, sub_str_lenght       ! Laengen- Initialisierung
character(len= str_lenght) str              ! Hauptstring mit Laenge
character(len= sub_str_lenght) sub_str      ! Teilstring mit Laenge


if( str(:sub_str_lenght) == sub_str) write(*,*) str

end subroutine starts_with

Antwort
von kordely, 6

Zuerst über Fortran: Welche Version?

Ich schreibe nur die Logik, du sollst in Fortran umsetzen:

Wenn das zweite String zu kurz ist, dann gebe .FALSE. zurück.

Anders mache eine Schleife,  und für jede Karaktere kontrolliere, dass sie genau sind. Wenn nicht, dann .FALSE.

Nach der Schleife kannst du .TRUE. zurückgeben.

Und für Fortran: Du kannst die Buchstaben als Teilstringe berufen, so wie a(Beginn:Ende).

Keine passende Antwort gefunden?

Fragen Sie die Community