STR$

Aus C64-Wiki
Wechseln zu: Navigation, Suche
STR$
Format: STR$(<Zahl>)
Parameter
<Zahl>: numerischer Ausdruck
Einordnung
Typ: String-Funktion
Kontext: Stringbearbeitung
Aufgabe: verwandelt eine Zahl in eine Zeichenkette
Abkürzung: stR
Verwandte Befehle
VAL

Anmerkung: Dieser Artikel beschreibt Zeichenketten-Funktion STR$ unter BASIC V2 des Commodore 64.


Die BASIC-Funktion STR$() dient zum Umwandeln einer Zahl in eine Zeichenkette. Diese ist im wesentlichen so aufgebaut, als wäre sie von PRINT ausgegeben worden, mit dem Unterschied, dass sich im PRINT-Fall am Ende ein Leerzeichen befindet.

Ist der als Parameter angegeben Ausdruck ein positiver Wert oder 0, so ist das 1. Zeichen der Zeichenkette ein Leerzeichen (als Platzhalter für das üblicherweise nicht angezeigte "+"-Vorzeichen), andernfalls ein Minuszeichen (−).

Ergibt die Auswertung des Parameters keine Zahl, so erscheint die BASIC-Fehlermeldung ?TYPE MISMATCH ERROR. Es werden alle Zahlen akzeptiert, sofern der Parameter eine gültige Fließkommazahl ergibt. Fehlt das numerische Argument, so erscheint ein ?SYNTAX ERROR.

Beispiele[Bearbeiten]

Einfache Beispiele[Bearbeiten]

Ohne STR$() wäre die Bildschirmausgabe identisch, der Mehrwert entsteht erst, wenn der Rückgabewert der Funktion weiter verarbeitet wird bzw. die Ausgaben in einer Zeile kombiniert werden.

PRINT STR$(1E11)  (die Zeichenkette " 1E+11" wird ausgegeben)
PRINT STR$(0)     (die Zeichenkette " 0" wird ausgegeben)
PRINT STR$(-1000) (die Zeichenkette "-1000" wird ausgegeben)
PRINT STR$(1/2)   (die Zeichenkette " .5" wird ausgeben

Unterschied PRINT-Format und STR$()-Format[Bearbeiten]

10 A=SQR(2)
20 PRINT "(";A;")"
30 PRINT "(";STR$(A);")"

gibt folgendes aus

( 1.41421356 )
( 1.41421356)

Ausgabeformatierung bei Tabellen[Bearbeiten]

Zahlen z.B. rechtsbündig darstellen ...

100 PRINT "QUADRAT-TABELLE"
110 FOR N=1 TO 10
115 REM PRINT N, N*N
120 PRINT RIGHT$(STR$(N),2); TAB(5); RIGHT$("  "+STR$(N*N),4) 
130 NEXT N
 1      1
 2      4
 3      9
 4     16
 5     25
 6     36
 7     49
 8     64
 9     81
10    100