STR$

Aus C64-Wiki
Zur Navigation springenZur Suche springen
STR$
Syntax: STR$(<Zahl>)
Parameter
<Zahl>: numerischer Ausdruck
Einordnung
Typ: String-Funktion
Kontext: Stringbearbeitung
Aufgabe: verwandelt eine Zahl in eine Zeichenkette
Abkürzung: stR
Token: $c4 (196)
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 | Quelltext bearbeiten]

Einfache Beispiele[Bearbeiten | Quelltext 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 | Quelltext bearbeiten]

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

gibt folgendes aus

( 1.41421356 )
( 1.41421356)

Ausgabeformatierung bei Tabellen[Bearbeiten | Quelltext 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