Wie kann ich eine Funktion to_upper () oder to_lower () in F90 schreiben?

8

Wie schreibt man eine (Intel) F90-Funktion, die eine Zeichenkette in Kleinbuchstaben (oder auch in Großbuchstaben) umwandelt? Ich möchte ein Zeichenarray an die Funktion übergeben und es ein Zeichenarray, z.

%Vor%

, so dass dieses Programm hello, world! ausgibt.

Ich habe mit der Unterroutine to_lower() angefangen bei RosettaCode begonnen, aber ich kann nicht herausfinden, wie um es als eine Funktion zu schreiben.

Vielen Dank im Voraus!

PS - Bonuspunkte, wenn Sie es mit einer Schnur von nicht fixierter Länge machen können!

    
jvriesem 25.05.2012, 18:09
quelle

3 Antworten

6

Als der ursprüngliche Autor dieses Codes bin ich froh, dass es etwas Hilfe ist. Ich habe mich gefragt, warum diese Funktionen nicht in Fortran eingebaut sind. Meine Vermutung ist, dass sie nur für einen ziemlich eingeschränkten Satz von Buchstaben arbeiten, d. H. Diejenigen, die auf Englisch verwendet werden. Wenn Sie Text in fast jeder anderen europäischen Sprache haben, werden Sie Zeichen mit Akzenten haben, und dann ist es viel schwieriger, sie in Groß- oder Kleinbuchstaben umzuwandeln. Zum Beispiel E-Grave in Französisch in Großbuchstaben umgewandelt wird in der Regel als einfach E gezeigt (der Grab Akzent verloren geht), aber in E-Akut ist es nicht. Die Designer von Fortran haben immer versucht, Einrichtungen zur Verfügung zu stellen, die für eine Vielzahl von Sprachen geeignet sind, und die Umwandlung von Groß- und Kleinbuchstaben in einer mehrsprachigen Weise ist gar nicht so einfach. Zumindest ist das meine Vermutung, warum Sie es selbst tun müssen.

    
Clive Page 19.06.2012, 21:48
quelle
13

Wow - obwohl ich über eine Stunde gesucht habe, habe ich sofort nach dem Posten eine Antwort gefunden: hier (unter" Verschiedenes Fortran Tipps und Tricks ").

Der Code, den ich verwendet habe, ist wie folgt (für to_upper):

%Vor%

Hoffe das hilft jemandem!

    
jvriesem 25.05.2012 18:26
quelle
6

Hier ist einer, der nicht auf die ASCII-Darstellung angewiesen ist

%Vor%

Sie können dies ganz einfach in to_lower ändern, indem Sie die Low- und Cap-Strings in der Schleife wechseln.

    
SethMMorton 29.05.2012 22:49
quelle

Tags und Links