String prepend: Difference between revisions

Added solution for Action!
(Added solution for Action!)
Line 175:
British Museum.
The rosetta stone is at British Museum.
</pre>
 
=={{header|Action!}}==
<lang Action!>PROC Append(CHAR ARRAY text,suffix)
BYTE POINTER srcPtr,dstPtr
BYTE len
 
len=suffix(0)
IF text(0)+len>255 THEN
len=255-text(0)
FI
IF len THEN
srcPtr=suffix+1
dstPtr=text+text(0)+1
MoveBlock(dstPtr,srcPtr,len)
text(0)==+suffix(0)
FI
RETURN
 
PROC Prepend(CHAR ARRAY text,prefix)
CHAR ARRAY tmp(256)
 
SCopy(tmp,text)
SCopy(text,prefix)
Append(text,tmp)
RETURN
 
PROC TestPrepend(CHAR ARRAY text,preffix)
PrintF("Source ""%S"" at address %H%E",text,text)
PrintF("Prepend ""%S""%E",preffix)
Prepend(text,preffix)
PrintF("Result ""%S"" at address %H%E",text,text)
PutE()
RETURN
 
PROC Main()
CHAR ARRAY text(256)
 
text(0)=0
TestPrepend(text,"World!")
TestPrepend(text,"Hello ")
RETURN</lang>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/String_prepend.png Screenshot from Atari 8-bit computer]
<pre>
Source "" at address $2A8A
Prepend "World!"
Result "World!" at address $2A8A
 
Source "World!" at address $2A8A
Prepend "Hello "
Result "Hello World!" at address $2A8A
</pre>
 
Anonymous user