str - Dynamic text string
Module Description
The str module implements a dynamic text string.
Module Words
String structure
str%
( -- n )
Get the required space for a str variable
String creation, initialisation and destruction
str-init
( str -- )
Initialise to an empty string
str-(free)
( str -- )
Free the string data from the heap
str-create
( "<spaces>name" -- ; -- str )
Create a named empty string in the dictionary
str-new
( -- str )
Create a new empty string on the heap
str-free
( str -- )
Free the string from the heap
Member words
str-empty?
( str -- flag )
Check for an empty string
str-length@
( str -- u )
Get the length of the string
str-length!
( u str -- )
Set the length of the string
str-index?
( n str -- flag )
Check if the index n is valid in the string
str-data@
( str -- c-addr )
Get the start of the string
str-size!
( u str -- )
Insure the size u of the string
str-extra@
( str -- u )
Get the extra space allocated during resizing of the string
str-extra!
( u str -- )
Set the extra space allocated during resizing of the string
str+extra@
( -- u )
Get the initial extra space allocated during resizing of the string
str+extra!
( u -- )
Set the initial extra space allocated during resizing of the string
Set words
str-clear
( str -- )
Clear the string
str-set
( c-addr u str -- )
Set the string c-addr u in the string
str-append-string
( c-addr u str -- )
Append the string c-addr u to the string
str-prepend-string
( c-addr u str -- )
Prepend the string c-addr u to the string
str-append-chars
( char u str -- )
Append u chars in the string
str-prepend-chars
( char u str -- )
Prepend u chars in the string
str-insert-string
( c-addr u n str -- )
Insert the string c-addr in the string at index n
str-insert-chars
( char u n str -- )
Insert u chars in the string at index n
Get words
str-get-substring
( u n str -- c-addr u )
Get a substring starting from index n, u characters long
str-get
( str -- c-addr u )
Get the string in the string
str-bounds
( str -- c-addr+u c-addr )
Get the bounds of the string
Delete word
str-delete
( u n str -- )
Delete a substring starting at index n with length u from the string
Zero terminated string words
str-set-zstring
( c-addr str -- )
Set a zero terminated string in the string
str-get-zstring
( str -- c-addr )
Get the string as zero terminated string
Strings word
Character words
str-append-char
( char str -- )
Append a character at the end of the string
str-prepend-char
( char str -- )
Prepend a character at the start of the string
str-push-char
( char str -- )
Push a character at the end of the string
str-pop-char
( str -- char )
Pop a character from the end of the string
str-enqueue-char
( char str -- )
Place a character at the start of the string
str-dequeue-char
( char str -- )
Get the character at the end of the string
str-set-char
( char n str -- )
Set the character on the nth position in the string
str-get-char
( n str -- char )
Get the character from the nth position in the string
str-insert-char
( char n str -- )
Insert the character on the nth position in the string
str-delete-char
( n str -- )
Delete the character on the nth position in the string
Special words
str-count
( c-addr u str -- u )
Count the number of occurences of the string c-addr u in the string
str-execute
( i*x xt str -- j*x )
Execute the xt token for every character in the string
Special manipulation words
str-capatilize
( str -- )
Capatilize the first word in the string
str-cap-words
( str -- )
Capatilize all words in the string
str-center
( u str -- )
Center the string in width u
str-align-left
( u str -- )
Align left the string in width u
str-align-right
( u str -- )
Align right the string in width u
str-strip-leading
( str -- )
Strip leading spaces in the string
str+strip-leading
( c-addr1 u1 -- c-addr2 u2 )
Strip leading whitespaces in the string c-addr1 u1
str-strip-trailing
( str -- )
Strip trailing spaces in the string
str+strip-trailing
( c-addr u1 -- c-addr u2 )
Strip trailing whitespaces in the string c-addr u1
str-strip
( str -- )
Strip leading and trailing spaces in the string
str+strip
( c-addr1 u1 -- c-addr2 u2 )
Strip leading and trailing spaces from string c-addr1 u1
str-lower
( str -- )
Convert the string to lower case
str-upper
( str -- )
Convert the string to upper case
str-expand-tabs
( u str -- )
Expand the tabs to u spaces in the string
Comparison words
str-icompare
( c-addr u str -- n )
Compare case-insensitive the string c-addr u with the string, return the result [-1,0,1]
str-ccompare
( c-addr u str -- n )
Compare case-sensitive the string c-addr u with the string, return the result [-1,0,1]
str^icompare
( str1 str2 -- n )
Compare case-insensitive the strings str1 and str, return the result [-1,0,1]
str^ccompare
( str1 str2 -- n )
Compare case-sensitive the string str1 and str2, return the result [-1,0,1]
Search and replace words
str-find
( c-addr u n1 str -- n2 )
Find the first occurence of the string c-addr u starting from index n1 in the string, return -1 if not found
str-replace
( c-addr1 u1 c-addr2 u2 str -- )
Replace all occurences of the string c-addr2 u2 with the string c-addr1 u1 in the string
Split words
str+columns
( c-addr u n -- c-addrn un ... c-addr1 u1 n )
Split the string c-addr u in n substrings, u width wide, skipping leading spaces [recursive]
Inspection
str-dump
( str -- )
Dump the string
generated 10-Apr-2008 by
ofcfrth-0.5.0