String concatenation: Difference between revisions
m
syntax highlighting fixup automation
Puppydrum64 (talk | contribs) |
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
||
Line 19:
{{trans|Python}}
<
print(s1‘ world’)
V s2 = s1‘ world’
print(s2)</
{{out}}
Line 32:
=={{header|AArch64 Assembly}}==
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}
<syntaxhighlight lang="aarch64 assembly">
/* ARM assembly AARCH64 Raspberry PI 3B */
/* program concatStr64.s */
Line 97:
/* for this file see task include a file in language AArch64 assembly */
.include "../includeARM64.inc"
</syntaxhighlight>
{{Output}}
<pre>
Line 104:
=={{header|ABAP}}==
<
s2 TYPE string.
Line 111:
WRITE: / s1.
WRITE: / s2.
</syntaxhighlight>
{{out}}
<pre>
Line 118:
</pre>
===Another way===
<
DATA(var1) = 'Hello'.
Line 131:
)->write( |{ var1 } world!|
)->display( ).
</syntaxhighlight>
{{out}}
<pre>
Line 139:
=={{header|Action!}}==
<
BYTE POINTER srcPtr,dstPtr
BYTE len
Line 169:
PROC Main()
TestConcatenate("Hello", " World!")
RETURN</
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/String_concatenation.png Screenshot from Atari 8-bit computer]
Line 177:
=={{header|ActionScript}}==
<
{
public class Str
Line 189:
}
}
}</
=={{header|Ada}}==
<
procedure String_Concatenation is
Line 200:
Put_Line (S1);
Put_Line (S2);
end String_Concatenation;</
{{out|Sample output}}
<pre>
Line 208:
=={{header|Aime}}==
<
s = "Hello";
o_(s, "\n");
v = s + ", World!";
o_(v, "\n");</
{{out}}
<pre>Hello
Line 222:
{{works with|ALGOL 68G|Any - tested with release [http://sourceforge.net/projects/algol68/files/algol68g/algol68g-1.18.0/algol68g-1.18.0-9h.tiny.el5.centos.fc11.i386.rpm/download 1.18.0-9h.tiny]}}
{{works with|ELLA ALGOL 68|Any (with appropriate job cards) - tested with release [http://sourceforge.net/projects/algol68/files/algol68toc/algol68toc-1.8.8d/algol68toc-1.8-8d.fc9.i386.rpm/download 1.8-8d]}}
<
print ((s + " literal", new line));
STRING s1 := s + " literal";
print ((s1, new line))</
{{out}}
<pre>
Line 233:
=={{header|ALGOL-M}}==
<syntaxhighlight lang="algol">
begin
Line 250:
end
</syntaxhighlight>
{{out}}
<pre>
Line 261:
=={{header|Apex}}==
<
String s1 = 'Hello ';
String s2 = 'Salesforce Developer!';
Line 268:
// Print output
System.debug(s3);</
{{out}}
<pre>Hello Salesforce Developer!</pre>
=={{header|AppleScript}}==
<
set endMsg to "world!"
set totMsg to "Hello, " & endMsg
display dialog totMsg
end try</
=={{header|ARM Assembly}}==
{{works with|as|Raspberry Pi}}
<syntaxhighlight lang="arm assembly">
/* ARM assembly Raspberry PI */
/* program strConcat.s */
Line 354:
bx lr @ return
</syntaxhighlight>
=={{header|Arturo}}==
<
str2: "World"
print str1 ++ str2 ++ "!"</
{{out}}
Line 367:
=={{header|Asymptote}}==
<
write(s1 + " World!");
write(s1, " World!");
string s2 = s1 + " World!";
write(s2);</
=={{header|AutoHotkey}}==
<
Msgbox, %s%
s1 := s . " literal" ;the . is optional
Msgbox, %s1%</
=={{header|AWK}}==
The AWK concatenation operator is nothing.
<
s = "hello"
print s " literal"
s1 = s " literal"
print s1
}</
=={{header|Axe}}==
<
Copy(r₁,L₁,length(r₁))
Copy(r₂,L₁+length(r₁),length(r₂)+1)
L₁
Return</
=={{header|BASIC}}==
Line 403:
{{works with|Run Basic}}
{{works with|Yabasic}}
<
print s$ + " literal"
s2$ = s$ + " literal"
print s$
print s2$</
{{out}}
<pre>hello literal
Line 417:
A semicolon (;) is ''not'' the same as a concatenate operator (+), it is an instruction that works only on the <code>PRINT</code> statement to suppress newlines at the end of a literal or series of literals. For example, the instruction <code>S$="HELLO";"LITERAL"</code> would result in a syntax error.
<
20 PRINT S$ + " LITERAL"
30 PRINT S$
40 S2$ = S$ + " LITERAL"
50 PRINT S2$</
{{out}}
Line 429:
==={{header|BaCon}}===
<
A$ = "hello"
PRINT A$," World"
Line 435:
A2$ = A$ & " using & to concat World"
PRINT A2$
</syntaxhighlight>
==={{header|BBC BASIC}}===
<
stringvar2$ = stringvar1$ + " world!"
PRINT "Variable 1 is """ stringvar1$ """"
PRINT "Variable 2 is """ stringvar2$ """"</
{{out}}
<pre>Variable 1 is "Hello,"
Line 447:
==={{header|IS-BASIC}}===
<
110 LET S$=S$&" world!"
120 PRINT S$</
==={{header|BASIC256}}===
<
print s1$; " World!"
print s1$ + " World!"
Line 461:
print s2$
s2$ = s1$ & " World!"
print s2$</
==={{header|Run BASIC}}===
{{works with|Liberty BASIC}}
<
print s1$; " World!"
print s1$ + " World!"
Line 471:
print s2$
s2$ = s1$ + " World!"
print s2$</
==={{header|True BASIC}}===
{{works with|BASIC256}}
<
PRINT s1$; " World!"
PRINT s1$ + " World!"
LET s2$ = s1$ & " World!"
PRINT s2$
END</
==={{header|uBasic/4tH}}===
<syntaxhighlight lang="text">s = Dup("Hello")
Print Show(s); " World!"
Print Show(Join(s, " World!"))
t = Join(s, " World!")
Print Show(t)
End</
==={{header|Yabasic}}===
{{works with|Liberty BASIC}}
Line 494:
{{works with|QBasic}}
{{works with|Run BASIC}}
<
print s1$, " World!"
print s1$ + " World!"
s2$ = s1$ + " World!"
print s2$</
==={{header|ZX Spectrum Basic}}===
<
20 LET s$=s$+" World!"
30 PRINT s$</
=={{header|Batch File}}==
<
echo %string% World
set string2=%string% World
echo %string2%</
=={{header|BQN}}==
<code>∾</code>(Join) will concatenate two strings together.
<
newstr ← str ∾ "world"
•Show newstr</
<
=={{header|Bracmat}}==
<
& "World":?var2
& str$(!var1 !var2):?var12
& put$("var1=" !var1 ", var2=" !var2 ", var12=" !var12 "\n")</
{{out}}
<pre>var1= Hello , var2= World , var12= Hello World</pre>
=={{header|Burlesque}}==
<
"Hello, world!"</
=={{header|C}}==
<
#include <stdlib.h>
#include <string.h>
Line 556:
puts(s2);
free(s2);
}</
=={{header|C sharp|C#}}==
<
class Program {
Line 569:
Console.WriteLine(s2);
}
}</
=={{header|C++}}==
<
#include <iostream>
Line 581:
std::cout << s2 << std::endl;
return 0;
}</
{{out}}
<pre>hello literal
Line 587:
=={{header|ChucK}}==
<syntaxhighlight lang="text">
"Hello" => string A;
A + " World!" => string B;
<<< B >>>;
</syntaxhighlight>
{{out}}
<pre>"Hello World!"</pre>
=={{header|Clojure}}==
<
(println (str a-str "efgh"))
(def a-new-str (str a-str "efgh"))
(println a-new-str)</
=={{header|COBOL}}==
With the <code>STRING</code> verb:
<
PROGRAM-ID. Concat.
Line 618:
GOBACK
.</
Alternate method using the <code>CONCATENATE</code> intrinsic function:
<
PROCEDURE DIVISION.
DISPLAY "Str : " Str
Line 627:
GOBACK
.</
String literals can also be concatenated in the follwing ways:
<
01 Long-Str-Val PIC X(200) VALUE "Lorem ipsum dolor sit "
& "amet, consectetuer adipiscing elit, sed diam nonummy "
Line 640:
01 Another-Long-Str PIC X(200) VALUE " Ut wisi enim ad minim
- "veniam, quis nostrud exerci tation ullamcorper suscipit
- "lobortis nisl ut aliquip ex ea commodo consequat".</
=={{header|Common Lisp}}==
<
(format t "~a there!~%" s)
(let* ((s2 " there!")
(s (concatenate 'string s s2)))
(format t "~a~%" s)))</
<
(print (concatenate 'string *s* " literal"))
(defparameter *s1* (concatenate 'string *s* " literal"))
(print *s1*)</
=={{header|Component Pascal}}==
BlackBox Component Builder
<
MODULE StringConcatenation;
IMPORT StdLog;
Line 669:
END StringConcatenation.
</syntaxhighlight>
Execute: ^Q StringConcatenation.Do<br/>
{{out}}
Line 677:
=={{header|D}}==
<
void main() {
Line 684:
auto s2 = s ~ " world";
writeln(s2);
}</
=={{header|DCL}}==
<
$ string2 = string1 + " world"
$ show symbol string*</
{{out}}
<pre> STRING1 = "hello"
Line 695:
=={{header|Delphi}}==
<
{$APPTYPE CONSOLE}
Line 706:
WriteLn(s1);
WriteLn(s2);
end.</
=={{header|DWScript}}==
<
var s2 := s1 + ' World';
PrintLn(s1);
PrintLn(s2);</
=={{header|Dyalect}}==
Line 719:
{{trans|Swift}}
<
print(s + " literal")
var s1 = s + " literal"
print(s1)</
=={{header|Dylan.NET}}==
<syntaxhighlight lang="dylan.net">
//to be compiled using dylan.NET v. 11.5.1.2 or later.
#refstdasm mscorlib.dll
Line 744:
end method
end class</
=={{header|Déjà Vu}}==
<
local :s2 concat( s1 ", world" )
!print s2</
{{out}}
<pre>hello, world</pre>
=={{header|EasyLang}}==
<syntaxhighlight lang="text">a$ = "hello"
b$ = a$ & " world"
print b$</
=={{header|Ela}}==
Strings in Ela support a polymorphic concatenation operator (++):
<
hello'world = hello ++ ", " ++ "world"
(hello, hello'world)</
{{out}}
<pre>("Hello", "Hello, world!")</pre>
Line 768:
a large number of concatenations. Therefore one can use an alternate technique (a pure StringBuilder
type defined in standard prelude). The resulting code would look like so:
<
The (+>) token is a type constructor. Therefore the result of its application is an instance of type
StringBuilder. In order to produce a string one should call a polymorphic toString function at the end
Line 775:
=={{header|Elena}}==
ELENA 4.x:
<
{
var s := "Hello";
Line 783:
console.writeLine:s2;
console.readChar()
}</
{{out}}
<pre>
Line 791:
=={{header|Elixir}}==
<
s = "hello"
t = s <> " literal"
Line 797:
IO.puts s
IO.puts t
</syntaxhighlight>
{{out}}
<pre>
Line 806:
=={{header|Emacs Lisp}}==
<
(defvar foobar (concat foo "bar"))
(message "%sbar" foo)
(message "%s" foobar)</
{{out}}
Line 817:
=={{header|Erlang}}==
<
S1 = S ++ " literal",
io:format ("~s literal~n",[S]),
io:format ("~s~n",[S1])</
{{out|Sample output}}
<pre>
Line 828:
=={{header|ERRE}}==
<syntaxhighlight lang="erre">
..........
S$="HELLO"
Line 835:
PRINT(S2$)
..........
</syntaxhighlight>
=={{header|Euphoria}}==
<
s = "hello"
puts(1, s & " literal")
Line 844:
s1 = s & " literal"
print (1, s1))
puts(1,'\n')</
{{out}}
hello literal
Line 852:
Take three cells, say A1,B1 and C1. In C1, type in :
<
=CONCATENATE(A1;" ";B1)
</syntaxhighlight>
As the text in A1 and/or B1 is changed, C1 will be updated.
<syntaxhighlight lang="text">
Hello World Hello World
</syntaxhighlight>
=={{header|F_Sharp|F#}}==
{{trans|C#}}
<
[<EntryPoint>]
Line 875:
let s2 = s + " literal"
Console.WriteLine(s2)
0</
=={{header|Factor}}==
<
=={{header|Falcon}}==
'''VBA/Python programmer's approach. I'm just a junior Falconeer but this code seems falconic''
<
/* created by Aykayayciti Earl Lamont Montgomery
April 9th, 2018 */
Line 890:
s2 = s + " literal"
> s2
</syntaxhighlight>
{{out}}
<pre>
Line 900:
=={{header|Fantom}}==
Illustrating in <tt>fansh</tt>:
<
abc
fansh> b := a + "def"
Line 907:
abc
fansh> b
abcdef</
=={{header|Forth}}==
{{works with|GNU Forth}}
<
pad count type
s" there!" pad +place \ +place is called "append" on some Forths
pad count type</
=={{header|Fortran}}==
<
integer, parameter :: maxstringlength = 64
Line 926:
print *,s1
end program</
=={{header|FreeBASIC}}==
<
Var s1 = "String"
Line 935:
Print s1
Print s2
Sleep</
{{out}}
Line 944:
=={{header|Frink}}==
<
a = "Frink"
b = a + " rules!"
println[b]
</syntaxhighlight>
=={{header|FutureBasic}}==
<
CFStringRef s1, s2
Line 961:
print s2
HandleEvents</
=={{header|Gambas}}==
Line 967:
'''[https://gambas-playground.proko.eu/?gist=098450adbbe0e284f0b9cdac67d74dda Click this link to run this code]'''
<
DIM bestclub AS String
DIM myconcat AS String
Line 976:
Print myconcat
End</
=={{header|GlovePIE}}==
<
debug=var.text1+"world!"</
=={{header|Go}}==
<
import "fmt"
Line 1,003:
// output second string variable
fmt.Println(s2)
}</
{{out}}
<pre>
Line 1,012:
=={{header|Golfscript}}==
<
s"Earthlings"+puts
s"Earthlings"+:s1;
s1 puts</
=={{header|Groovy}}==
<
println s + "Earthlings"
def s1 = s + "Earthlings"
println s1</
{{out}}
<pre>Greetings Earthlings
Line 1,029:
=={{header|Halon}}==
The dot (concatenation) operator may cast datatypes to strings.
<
=={{header|Haskell}}==
<
s = "hello"
s1 = s ++ " literal"
main = do putStrLn (s ++ " literal")
putStrLn s1</
=={{header|HicEst}}==
<
WRITE() s // " literal"
sl = s // " literal"
WRITE() sl</
=={{header|Icon}} and {{header|Unicon}}==
<
s1 := "hello"
write(s2 := s1 || " there.") # capture the reuslt for
write(s2) # ... the 2nd write
end</
=={{header|IDL}}==
<
print, s1 + ' literal'
s2=s1 + ' literal'
print, s2</
=={{header|J}}==
<
]s1, 'text '
Some text
]s2 =. s1 , 'more text!'
Some more text!</
For more info see:
* http://www.jsoftware.com/help/dictionary/d320.htm on <code>,</code>
Line 1,069:
=={{header|Java}}==
<
public static void main(String[] args){
String s = "hello";
Line 1,076:
System.out.println(s2);
}
}</
{{out}}
<pre>hello literal
Line 1,082:
=={{header|JavaScript}}==
<
print(s + " there!")</
=={{header|jq}}==
<
{{Out}}
# Use the -r command-line option if you wish
Line 1,093:
=={{header|Julia}}==
<
println(s * " there!")</
=={{header|K}}==
Translation of <b>J</b> code:
<syntaxhighlight lang="k">
s1: "Some "
s1, "text "
s2: s1 , "more text!"
</syntaxhighlight>
{{out}}
<pre>
Line 1,111:
=={{header|Kotlin}}==
<
val s1 = "James"
val s2 = "Bond"
Line 1,118:
val s3 = s1 + " " + s2
println(s3)
}</
{{Out}}
<pre>James
Line 1,133:
=={{header|Lambdatalk}}==
In Lambdatalk writing {def name a sequence of words} replaces the sequence of words by the given name in the code string. The name is a word and is not evaluated. Bracketing a name between two curly braces returns its related value. And concatenating named strings is simply done by writing names between curly braces and separated by spaces.
<syntaxhighlight lang="scheme">
{def christian_name Albert}
-> christian_name
Line 1,141:
{christian_name} {name}
-> Albert de Jeumont-Schneidre
</syntaxhighlight>
=={{header|Lang5}}==
<
'hello " literal" concat</
=={{header|Lasso}}==
<
local(y = #x + ', World!')
#x // Hello
#y // Hello, World!</
=={{header|Liberty BASIC}}==
Line 1,157:
=={{header|Lingo}}==
<
b = a & " world!"
put b
-- "Hello world!"</
=={{header|Lisaac}}==
<
+ name := STRING_CONCATENATION;
Line 1,179:
sv.println;
);</
=={{header|LiveCode}}==
<
put str & "code" into str2
put str && str2</
Output<pre>live livecode</pre>
=={{header|Logo}}==
<
print word :s "| there!|</
=={{header|Lua}}==
<
print(a .. "world")
c = a .. "world"
print(c)</
=={{header|M2000 Interpreter}}==
Line 1,202:
A memory word is two bytes.
<syntaxhighlight lang="m2000 interpreter">
Module CheckString {
s$ = "hello"
Line 1,219:
}
CheckString
</syntaxhighlight>
=={{header|M4}}==
M4 has macros rather than variables, but a macro expanded can work like a variable.
<
define(`A',`any text value')dnl
concat(`A',` concatenated with string literal')
define(`B',`concat(`A',` and string literal')')dnl
B</
=={{header|Maple}}==
<
newstr := cat(str,", world!"):
str;
newstr;</
{{out}}
<pre>
Line 1,258:
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<
str<>"Literal"</
=={{header|MATLAB}} / {{header|Octave}}==
<
string1 =
Line 1,272:
string2 =
1 Fish, 2 Fish, Red Fish, Blue Fish</
=={{header|Maxima}}==
<
t: "jumps over the lazy dog";
sconcat(s, " ", t);
/* "the quick brown fox jumps over the lazy dog" */</
=={{header|MAXScript}}==
<
print (s + " literal")
s1 = s + " literal"
print s1</
=={{header|Mercury}}==
<
:- interface.
Line 1,300:
S1 = S ++ " world",
io.write_string(S, !IO), io.nl(!IO),
io.write_string(S1, !IO), io.nl(!IO).</
=={{header|Metafont}}==
<
a := "String";
message a & " literal";
b := a & " literal";
message b;</
=={{header|min}}==
{{works with|min|0.19.3}}
<
(a "scotch")=> "" join :b
a puts!
b puts!</
{{out}}
<pre>
Line 1,322:
=={{header|MiniScript}}==
<
print s + " world!"</
{{output}}
Line 1,331:
Using the following implementation of [[C]]'s <code>strcpy()</code>, we can concatenate strings easily by copying them to a RAM buffer back-to-back. We'll only do a few so that we don't clobber any other RAM we're using.
<
la $a0,String1
la $a1,UserRam
Line 1,369:
.ascii "lmnopqrstuvwxyz"
.byte 0
.align 4</
{{out}}
<pre>abcdefghijklmnopqrstuvwxyz</pre>
Line 1,375:
=={{header|Modula-3}}==
Strings in Modula-3 are called <code>TEXT</code>s. Concatenation can use <code>&</code>, just like [[Ada]].
<
IMPORT IO;
Line 1,386:
string1 := string & " literal.\n";
IO.Put(string1);
END Concat.</
Modula-3 also provides modules for dealing with <code>TEXT</code>s, such as <code>Text</code>.
<
=={{header|MUMPS}}==
<
SET S="STRING"
WRITE !,S
SET T=S_" LITERAL"
WRITE !,T
QUIT</
{{out}}
<pre>
Line 1,406:
=={{header|Nanoquery}}==
<
println s1 + " world"
s2 = s1 + " world"
println s2</
{{out}}
<pre>hello world
Line 1,416:
=={{header|Neko}}==
<syntaxhighlight lang="actionscript">/**
String concatenation, in Neko
Tectonics:
Line 1,437:
$print("addon: ", addon, "\n")
$print("c: ", c, "\n")
}</
{{out}}
Line 1,449:
=={{header|Nemerle}}==
Can be done with Concat() method or + operator:
<
using System.Console;
using Nemerle.Utility.NString; // contains method Concat()
Line 1,462:
Write($"$cat1\n$cat2\n");
}
}</
=={{header|NetRexx}}==
<
options replace format comments java crossref savelog symbols
Line 1,484:
say 's6:' s6
say 's7:' s7
</syntaxhighlight>
{{out}}
<pre>
Line 1,496:
=={{header|NewLISP}}==
<
(println str1)
(let (str2 (string str1 "bar"))
(println str2)))</
=={{header|Nim}}==
Strings can be concatenated with <code>&</code>.
<
echo str & " literal."
# -> String literal.</
Strings can be concatenated as arrays and joined with separating characters:
<
var str = "String"
echo join([str, " literal.", "HelloWorld!"], "~~")
# -> String~~ literal.~~HelloWorld!</
Strings can be combined using string formatting:
<
var str = "String"
Line 1,524:
# Alternate form providing automatic conversion of arguments to strings.
echo "$# $# $#".format(str, 123, "HelloWorld!")
# -> String 123 HelloWorld!</
=={{header|NS-HUBASIC}}==
<
20 STRING$=STRING$+" WORLD!"
30 PRINT STRING$</
=={{header|Objeck}}==
<
class Repeat {
function : Main(args : String[]) ~ Nil {
Line 1,542:
}
}
}</
=={{header|Objective-C}}==
<
int main()
Line 1,564:
}
return 0;
}</
=={{header|OCaml}}==
<
let s1 = s ^ " literal"
let () =
print_endline (s ^ " literal");
print_endline s1</
=={{header|Oforth}}==
.s show the stack :
<
{{out}}
Line 1,585:
=={{header|Openscad}}==
<
b="berry";
c=str(a,b); /* Concatenate a and b */
echo (c);</
=={{header|Oz}}==
Strings are lists and are concatenated with the "Append" function. However, often "virtual strings" are used instead. [http://www.mozart-oz.org/home/doc/base/virtualstring.html "Virtual string are designed as a convenient way to combine strings, byte strings, atoms, integers and floats to compound strings without explicit concatenation and conversion"].
<
S = "hello"
{System.showInfo S#" literal"} %% virtual strings are constructed with "#"
S1 = {Append S " literal"}
{System.showInfo S1}</
=={{header|PARI/GP}}==
<
s = Str(s, "world");
\\ Alternately, this could have been:
\\ s = concat(s, "world");
print(s);</
=={{header|Pascal}}==
<
Var
s, s1 : String;
Line 1,616:
{ s1 := s + ' literal'; works too, with FreePascal }
writeln(s1);
End.</
=={{header|Perl}}==
<
print $s . ' literal', "\n";
my $s1 = $s . ' literal';
print $s1, "\n";</
An example of destructive concatenation:
<
print $s, "\n";</
=={{header|Phix}}==
{{libheader|Phix/basics}}
<!--<
<span style="color: #004080;">string</span> <span style="color: #000000;">s1</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"at"</span> <span style="color: #0000FF;">?</span><span style="color: #000000;">s1</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">s2</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"c"</span><span style="color: #0000FF;">&</span><span style="color: #000000;">s1</span> <span style="color: #0000FF;">?</span><span style="color: #000000;">s2</span>
Line 1,635:
<span style="color: #004080;">string</span> <span style="color: #000000;">s4</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"m"</span><span style="color: #0000FF;">&</span><span style="color: #000000;">s1</span> <span style="color: #0000FF;">?</span><span style="color: #000000;">s4</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">s5</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"The "</span><span style="color: #0000FF;">&</span><span style="color: #000000;">s2</span><span style="color: #0000FF;">&</span><span style="color: #008000;">" "</span><span style="color: #0000FF;">&</span><span style="color: #000000;">s3</span><span style="color: #0000FF;">&</span><span style="color: #008000;">" on the "</span><span style="color: #0000FF;">&</span><span style="color: #000000;">s4</span><span style="color: #0000FF;">&</span><span style="color: #008000;">"."</span> <span style="color: #0000FF;">?</span><span style="color: #000000;">s5</span>
<!--</
{{out}}
<pre>
Line 1,647:
=={{header|PHL}}==
<syntaxhighlight lang="text">module stringcat;
extern printf;
Line 1,657:
return 0;
]</
=={{header|PHP}}==
<
$s = "hello";
echo $s . " literal" . "\n";
$s1 = $s . " literal";
echo $s1 . "\n";
?></
=={{header|Picat}}==
<
Hello = "Hello, ",
print(Hello ++ "world!" ++ "\n"),
String = Hello ++ "world!",
String := String ++ "\n",
print(String).</
=={{header|PicoLisp}}==
<
(prinl Str1 " literal")
(let Str2 (pack Str1 " literal")
(prinl Str2) ) )</
=={{header|Pike}}==
<syntaxhighlight lang="pike">
string hello = "hello ";
write(hello + "world" + "\n");
string all_of_it = hello + "world";
write(all_of_it + "\n");
</syntaxhighlight>
{{Out}}
<pre>
Line 1,695:
=={{header|PL/I}}==
<
s = 'hello from me';
display (s || ' to you.' );
t = s || ' to you all';
display (t);</
=={{header|Plain English}}==
Strings (and other values) can be concatenated to strings with <code>then</code>.
<
Start up.
Put "hello" into a string.
Line 1,711:
Write the other string to the console.
Wait for the escape key.
Shut down.</
{{out}}
<pre>
Line 1,719:
=={{header|PowerShell}}==
<
Write-Host $s World.
Line 1,726:
$s2 = $s + " World."
Write-Host $s2</
=={{header|PureBasic}}==
<
s$ = "hello"
Line 1,739:
Input()
CloseConsole()
EndIf</
=={{header|Python}}==
<
print s1 + " world"
s2 = s1 + " world"
print s2</
{{out}}
<pre>hello world
hello world</pre>
When concatenating many strings, it is more efficient to use the join method of a string object, which takes a list of strings to be joined. The string on which join is called is used as a separator.
<
print ", ".join([s1, "world", "mom"])
s2 = ", ".join([s1, "world", "mom"])
print s2</
{{out}}
<pre>hello, world, mom
Line 1,761:
=={{header|QB64}}==
<
s2$ = s1$ + " concatenation"
Print s1$
Print s2$</
{{out}}
<pre>
Line 1,773:
=={{header|Quackery}}==
<
$ " has no echo."
join
echo$</
{{out}}
Line 1,783:
=={{header|R}}==
<
paste(hello, "literal") # "hello literal"
hl <- paste(hello, "literal") #saves concatenates string to a new variable
paste("no", "spaces", "between", "words", sep="") # "nospacesbetweenwords"</
=={{header|Racket}}==
<
(define hello "hello")
(displayln hello)
Line 1,798:
;outputs:
; hello
; hello world!</
=={{header|Raku}}==
(formerly Perl 6)
{{works with|Rakudo|#22 "Thousand Oaks"}}
<syntaxhighlight lang="raku"
say $s ~ ' literal';
my $s1 = $s ~ ' literal';
Line 1,811:
$s ~= ' literal';
say $s;</
Note also that most concatenation in Raku is done implicitly via interpolation.
=={{header|Raven}}==
<
"First string and " "second string" cat print
Line 1,829:
# Heredoc
" - NOT!!" as $x
"This is the only way to do it%($x)s" print</
{{out}}
<pre>First string and second string
Line 1,839:
=={{header|REBOL}}==
<
print s1: rejoin [s " literal"]
print s1</
=={{header|Red}}==
<
>>str2: append str1 " World"
>> print str2
Hello World
>> print str1
Hello World</
=={{header|ReScript}}==
<
let s2 = s1 ++ " literal"
Js.log(s1)
Js.log(s2)
</syntaxhighlight>
{{output}}
<pre>$ bsc sc.res > sc.js
Line 1,866:
=={{header|Retro}}==
<syntaxhighlight lang="retro">
'hello_ 'literal s:append s:put</
=={{header|REXX}}==
<
say s "literal"
t = s "literal" /*whitespace between the two strings causes a space in the output.*/
Line 1,878:
genus= "straw"
say genus"berry" /*this outputs strawberry.*/
say genus || "berry" /*concatenation using a double-pipe does not cause spaces.*/</
=={{header|Ring}}==
<
aString = "Welcome to the "
bString = "Ring Programming Language"
see astring + bString + nl
</syntaxhighlight>
=={{header|Ruby}}==
<
s = "hello"
Line 1,913:
puts s #=> "Alice said: hello literal"
</syntaxhighlight>
=={{header|Rust}}==
<
let s = "hello".to_owned();
println!("{}", s);
Line 1,922:
let s1 = s + " world";
println!("{}", s1);
}</
=={{header|SAS}}==
<
a="Hello,";
b="World!";
Line 1,933:
c=catx (" ", a, b);
put c;
run;</
=={{header|Sather}}==
<
main is
s ::= "hello";
Line 1,943:
#OUT + s2 + "\n";
end;
end;</
=={{header|S-BASIC}}==
<syntaxhighlight lang="basic">
rem - the + operator is used to concatenate strings
Line 1,958:
end
</syntaxhighlight>
{{out}}
<pre>
Line 1,968:
=={{header|Scala}}==
Evaluation in a Scala worksheet, to val f2 is an anonymous function assigned.
<
val s2 = s + " world" //> s2 : String = hello world
val f2 = () => " !" //> f2 : () => String = <function0>
println(s2 + f2()) //> hello world !</
=={{header|Scheme}}==
<
(display (string-append s " literal"))
(newline)
(define s1 (string-append s " literal"))
(display s1)
(newline)</
=={{header|Scilab}}==
<syntaxhighlight lang="text">s1="Hello"
s1+" world!"
s2=s1+" world"
s2
</syntaxhighlight>
{{out}}
<pre style="height:20ex> --> s1="Hello"
Line 2,002:
=={{header|Seed7}}==
<
const proc: main is func
Line 2,012:
s2 := s & " world";
writeln(s2);
end func;</
{{out}}
<pre>
Line 2,020:
=={{header|Sidef}}==
<
say s+' literal';
var s1 = s+' literal';
say s1;</
An example of destructive concatenation:
<
say s;</
=={{header|Simula}}==
<
TEXT head, tail;
BEGIN TEXT c;
Line 2,042:
another :- concatenate(stringVariable, "and tail");
OutText("stringVariable: """); OutText(stringVariable);
OutText(""", another: "); OutText(another); Outimage;</
=={{header|Slate}}==
<
inform: s ; ' literal'.
define: #s1 -> (s ; ' literal').
inform: s1.</
=={{header|Smalltalk}}==
In Smalltalk "," (comma) is a binary message (virtual function) implemented by Collection (and therefore also understood by strings):
<
(s,' literal') printNl.
s1 := s,' literal'.
s1 printNl.</
=={{header|SNOBOL4}}==
<
output = greet1
greet2 = greet1 "World!"
output = greet2
end</
=={{header|Sparkling}}==
<
let s2 = " world!";
print(s1 .. s2); // prints "Hello world!"</
=={{header|Standard ML}}==
<
val s1 = s ^ " literal\n"
val () =
print (s ^ " literal\n");
print s1</
=={{header|Stata}}==
=== Stata string scalars ===
<
sca b = "bar"
sca c = a+b
di c
foobar</
=== Mata ===
<
b = "bar"
c = a+b
c
foobar</
=={{header|Swift}}==
<
println(s + " literal")
let s1 = s + " literal"
println(s1)</
=={{header|Symsyn}}==
<syntaxhighlight lang="symsyn">
| concatenate a string
Line 2,106:
$s []
</syntaxhighlight>
{{out}}
Line 2,115:
=={{header|Tailspin}}==
Tailspin has no operator for concatenating strings, you simply use interpolation instead
<
def a: 'Hello';
'$a;, World!' -> !OUT::write
</syntaxhighlight>
{{out}}
<pre>
Line 2,125:
=={{header|Tcl}}==
<
puts "$s there!"
append s " there!"
puts $s</
You can also just group the strings to concatenate together at the point where they are used, using Tcl's built-in syntactic concatenation:
<
set t "World"
set u "!"
puts $s$t$u ;# There is nothing special here about using puts; just an example</
=={{header|TI-83 BASIC}}==
<
Str0+" WORLD!"→Str0</
{{out}}
<pre>HELLO WORLD!</pre>
=={{header|TI-89 BASIC}}==
<
Disp sv & "vark"
sv & "wolf" → sv2</
=={{header|TorqueScript}}==
<
echo(%string);
%other = " world!";
echo(%other);
echo(%string @ %other);</
=={{header|TUSCRIPT}}==
<
s = "Hello "
print s, "literal"
s1 = CONCAT (s,"literal")
print s1</
{{out}}
<pre>
Line 2,168:
=={{header|UNIX Shell}}==
{{works with|Bourne Shell}} {{works with|bash}}
<
echo "$s literal"
s1="$s literal" # This method only works with a space between the strings
Line 2,176:
genus='straw'
fruit=${genus}berry # This outputs the word strawberry
echo $fruit</
=={{header|UnixPipes}}==
<
| xargs -n1 -i echo {} literal</
=={{header|Ursa}}==
<
# make s1 contain "hello "
set s1 "hello "
Line 2,191:
# outputs "hello world"
out s2 endl console</
=={{header|Vala}}==
<
var s = "hello";
print(s);
Line 2,200:
var s2 = s + " literal\n";
print(s2);
}</
=={{header|VBA}}==
<syntaxhighlight lang="vb">
Option Explicit
Line 2,216:
Debug.Print str2 & " based on concatenation of : " & str1 & " and code..."
End Sub
</syntaxhighlight>
{{out}}
<pre>
Line 2,224:
=={{header|VBScript}}==
<
s2=s1 & " World!"
WScript.Echo s2 </
{{out}}
<pre>
Line 2,240:
'''Platform:''' [[.NET]]
{{works with|Visual Basic .NET|9.0+}}
<
Console.WriteLine(s & " literal")
s1 = s + " literal"
Console.WriteLine(s1)</
=={{header|Vlang}}==
<
println(s)
Line 2,253:
s2:= s+ ' literal'
println(s2)</
{{out}}
<pre>
Line 2,262:
=={{header|Wee Basic}}==
<
let string2$="world!"
print 1 string1$+string2$
end</
=={{header|Wren}}==
<
var t = s + "world!"
System.print(s)
System.print(t)</
{{out}}
Line 2,280:
=={{header|XPL0}}==
<
char S1, S2, S3;
int C, I, J;
Line 2,302:
Concat(A, B, C);
Text(0, C);
]</
=={{header|Yorick}}==
<
var2 = var1 + ", world!";
write, var1;
write, var2;</
=={{header|Zig}}==
<
const debug = std.debug;
Line 2,341:
debug.warn("{}\n", .{hello_world_joined});
}</
{{out}}
Line 2,352:
=={{header|zkl}}==
<
s2:=s+", world!"; s2.println(); //-->Hello, world!
s3:=String(s," ",s2); s3.println(); //-->Hello Hello, world!</
Line 2,362:
=={{header|Zoea}}==
<syntaxhighlight lang="zoea">
program: string_concat
input: ['hello', 'literal']
output: 'hello literal'
</syntaxhighlight>
=={{header|Zoea Visual}}==
|