diff --git a/src/main/java/com/ardublock/translator/block/arrays/MemcpyBlock.java b/src/main/java/com/ardublock/translator/block/arrays/MemcpyBlock.java
index 9ad590dcf5aa8ce44262517192c88a56abd85938..5b7f8bc7093ad0d77ba5b0f9400eb4a5960ae8f4 100644
--- a/src/main/java/com/ardublock/translator/block/arrays/MemcpyBlock.java
+++ b/src/main/java/com/ardublock/translator/block/arrays/MemcpyBlock.java
@@ -38,7 +38,7 @@ public class MemcpyBlock extends TranslatorBlock
 		      throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
 		    }
 		
-		String ret = "memcpy("+destinationArray+", " + sourceArray + ", "+lengthOfData+")";
+		String ret = "memcpy("+destinationArray+", " + sourceArray + ", "+lengthOfData+");";
 
 		return ret;
 	}
diff --git a/src/main/java/com/ardublock/translator/block/arrays/MemsetBlock.java b/src/main/java/com/ardublock/translator/block/arrays/MemsetBlock.java
index 715e8ac84a4564352a6dbe767b5745b2346ae3b0..a2b5217ea2debbd38bfbf7a10a4e93885e935e6f 100644
--- a/src/main/java/com/ardublock/translator/block/arrays/MemsetBlock.java
+++ b/src/main/java/com/ardublock/translator/block/arrays/MemsetBlock.java
@@ -37,7 +37,7 @@ public class MemsetBlock extends TranslatorBlock
 		      throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
 		    }
 		
-		String ret = "memset("+destinationArray+", " + insertChar + ", "+numOfReplacedChars+")";
+		String ret = "memset("+destinationArray+", " + insertChar + ", "+numOfReplacedChars+");";
 
 		return ret;
 	}
diff --git a/src/main/java/com/ardublock/translator/block/arrays/StrcpyBlock.java b/src/main/java/com/ardublock/translator/block/arrays/StrcpyBlock.java
index d233fbef0210f5fd51fda9234d3323b9bef761de..0e1ef57589b8fde01ec2da2fe5396c4432a25a64 100644
--- a/src/main/java/com/ardublock/translator/block/arrays/StrcpyBlock.java
+++ b/src/main/java/com/ardublock/translator/block/arrays/StrcpyBlock.java
@@ -36,7 +36,7 @@ public class StrcpyBlock extends TranslatorBlock
 		      throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
 		    }
 
-		String ret = "strcpy("+destinationArray+", " + sourceArray + ")";
+		String ret = "strcpy("+destinationArray+", " + sourceArray + ");";
 
 		return ret;
 	}
diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties
index d620c117ea996d7db531dfcd877cd91714105712..b1364cb0600d0eac8016d07f32304ee3da7345bf 100644
--- a/src/main/resources/com/ardublock/block/ardublock.properties
+++ b/src/main/resources/com/ardublock/block/ardublock.properties
@@ -686,6 +686,12 @@ bg.create_variable_analog=create analog variable
 bg.create_variable_analog.description=
 bg.create_array_analog=set analog array
 bg.create_array_analog.description=
+bg.memcpy_string=memcpy
+bg.memcpy_string.description=copy a block of memory from a location to another 
+bg.memset_string=memset
+bg.memset_string.description=copies a single character for a specified number of times to an object
+bg.strcpy_string=strcpy
+bg.strcpy_string.description=copy one string to another
 
 #ARRAYS
 #****************************
@@ -693,6 +699,7 @@ bd.array=Arrays
 
 bg.arrayDivider1=|       analog      |
 bg.arrayDivider2=|       string      |
+bg.arrayDivider3=|       copy/replace      |
 
 bg.create_char_array=create char[]
 bg.read_char_array=read character
@@ -714,6 +721,7 @@ bg.create_number_long_array.description=Create an array of long
 bg.create_number_float_array.description=Create an array of float
 bg.setter_number_array.description=Set the value of an array member
 
+bc.string=char array
 bc.position=position
 bc.array=Name the array
 bc.vecsize=size
diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml
index cda0a1a9a7915ec8db5bb8b9333970bd9f93301a..979ca2c9c0bfc97ffe1404ca3d19511c4055e0f4 100644
--- a/src/main/resources/com/ardublock/block/ardublock.xml
+++ b/src/main/resources/com/ardublock/block/ardublock.xml
@@ -2084,6 +2084,7 @@
 		<!-- ******************** Arrays *************** -->
 		<BlockGenus name="arrayDivider1" kind="command" is-starter="yes" is-terminator="yes" initlabel="bg.arrayDivider1" color="150 150 150" />
 		<BlockGenus name="arrayDivider2" kind="command" is-starter="yes" is-terminator="yes" initlabel="bg.arrayDivider2" color="150 150 150" />
+		<BlockGenus name="arrayDivider3" kind="command" is-starter="yes" is-terminator="yes" initlabel="bg.arrayDivider3" color="150 150 150" />
 		
 		<BlockGenus name="create_char_array" kind="command" color="200 0 0" initlabel="bg.create_char_array">
 	      <description>
@@ -2107,7 +2108,7 @@
 			</description>
 			<BlockConnectors>
 				<BlockConnector connector-type="string-list" connector-kind="plug" />
-				<BlockConnector connector-type="string" connector-kind="socket" label="bc.array">
+				<BlockConnector connector-type="string" connector-kind="socket" label="bc.string">
 					<DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette" />
 				</BlockConnector>
 				<BlockConnector connector-type="number" connector-kind="socket" label="bc.position">
@@ -2120,7 +2121,7 @@
 				<text>Set a array value</text>
 			</description>
 			<BlockConnectors>
-				<BlockConnector connector-type="string" connector-kind="socket" label="bc.array">
+				<BlockConnector connector-type="string" connector-kind="socket" label="bc.string">
 					<DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette" />
 				</BlockConnector>
 				<BlockConnector connector-type="number" connector-kind="socket" label="bc.position">
@@ -2215,6 +2216,50 @@
 				</BlockConnector>
 			</BlockConnectors>
 		</BlockGenus>
+		
+		<BlockGenus name="memcpy_string" kind="command" color="200 0 0" initlabel="memcpy_string">
+			<description>
+				<text>memcpy</text>
+			</description>
+			<BlockConnectors>
+				<BlockConnector connector-type="string" connector-kind="socket" label="bc.array">
+					<DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette" />
+				</BlockConnector>
+				<BlockConnector connector-type="string" connector-kind="socket" label="bc.array">
+					<DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette2" />
+				</BlockConnector>
+				<BlockConnector connector-type="number" connector-kind="socket" label="bc.vecsize">
+				</BlockConnector>
+			</BlockConnectors>
+		</BlockGenus>
+		<BlockGenus name="memset_string" kind="command" color="200 0 0" initlabel="memset_string">
+			<description>
+				<text>memset</text>
+			</description>
+			<BlockConnectors>
+				<BlockConnector connector-type="string" connector-kind="socket" label="bc.string">
+					<DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette" />
+				</BlockConnector>
+				<BlockConnector connector-type="string-list" connector-kind="socket" label="bc.char">
+					<DefaultArg genus-name="variable_char" label="X" />
+				</BlockConnector>
+				<BlockConnector connector-type="number" connector-kind="socket" label="bc.vecsize">
+				</BlockConnector>
+			</BlockConnectors>
+		</BlockGenus>
+		<BlockGenus name="strcpy_string" kind="command" color="200 0 0" initlabel="strcpy_string">
+			<description>
+				<text>strcpy</text>
+			</description>
+			<BlockConnectors>
+				<BlockConnector connector-type="string" connector-kind="socket" label="bc.array">
+					<DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette" />
+				</BlockConnector>
+				<BlockConnector connector-type="string" connector-kind="socket" label="bc.array">
+					<DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette2" />
+				</BlockConnector>
+			</BlockConnectors>
+		</BlockGenus>
 	    
 		<!-- ******************** Communication *************** -->
 		<BlockGenus name="communicationDivider1" kind="command" is-starter="yes" is-terminator="yes" initlabel="bg.communicationDivider1" color="150 150 150" />
@@ -3400,6 +3445,11 @@
 				<BlockGenusMember>create_char_array</BlockGenusMember>
 				<BlockGenusMember>setter_char_array</BlockGenusMember>
 				<BlockGenusMember>read_char_array</BlockGenusMember>
+				
+				<BlockGenusMember>arrayDivider3</BlockGenusMember>
+				<BlockGenusMember>memcpy_string</BlockGenusMember>
+				<BlockGenusMember>memset_string</BlockGenusMember>
+				<BlockGenusMember>strcpy_string</BlockGenusMember>
 			</BlockDrawer>
 			
 			<BlockDrawer button-color="165 42 42" name="bd.communication" type="default">
diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties
index abc3a6092fe44a6b3271d0fc467f5d3588ebdcbc..ae404af96eb9d4691ac4536c23540f2824f1613f 100644
--- a/src/main/resources/com/ardublock/block/ardublock_de.properties
+++ b/src/main/resources/com/ardublock/block/ardublock_de.properties
@@ -670,7 +670,6 @@ bg.local_variable_file.description=lokale Datei Variable
 bg.local_variable_number.description=Name der lokalen analogen Variable (int)\nDatentyp hängt vom \"Setze-Block\" ab
 bg.local_variable_digital.description=Name der lokalen digitalen Variable (bool)
 
-bc.string=Zeichenkette
 bc.num=#
 bc.position=Position
 bc.variable_digital=digitale_Variable
@@ -692,6 +691,7 @@ bd.array=Tabellen
 
 bg.arrayDivider1=|       analoge Tabellen      |
 bg.arrayDivider2=|       Zeichenketten      |
+bg.arrayDivider3=|       kopieren/ersetzen      |
 
 bg.create_char_array=Erstelle Zeichenkette
 bg.read_char_array=lese Zeichen
@@ -713,6 +713,14 @@ bg.create_number_float_array.description=Erzeuge ein Array f
 bg.setter_number_array.description=Setze den Wert eines Array-Feldes
 bg.read_number_array.description=Lese den Wert eines\nTabellen-Feldes
 
+bg.memcpy_string=kopiere Tabelle
+bg.memcpy_string.description=copy a block of memory from a location to another 
+bg.memset_string=setze Wert in Tabelle
+bg.memset_string.description=kopiere ein Zeichen/Wert wiederholt in einer Zeichenkette oder Tabelle
+bg.strcpy_string=kopiere Zeichenkette
+bg.strcpy_string.description=kopiere eine Zeichenkette in eine andere
+
+bc.string=Zeichenkette
 bc.position=Stelle
 bc.array=Tabellen-Name
 bc.vecsize=Anzahl Werte
diff --git a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
index e25ecd6f54b52506edec55b54f055fac5ac32b80..58c032b12d494bc7288ca84ec57e22cd4443beb2 100644
--- a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
+++ b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
@@ -669,7 +669,6 @@ bg.local_variable_file.description=lokale Datei Variable
 bg.local_variable_number.description=Name der lokalen analogen Variable (int)\nDatentyp hängt vom \"Setze-Block\" ab
 bg.local_variable_digital.description=Name der lokalen digitalen Variable (bool)
 
-bc.string=char-Array
 bc.num=#
 bc.position=Position
 bc.variable_digital=bool_Variable
@@ -691,6 +690,7 @@ bd.array=Tabellen
 
 bg.arrayDivider1=|       analoge Tabellen      |
 bg.arrayDivider2=|       Zeichenketten      |
+bg.arrayDivider3=|       kopieren/ersetzen      |
 
 bg.create_char_array=Erstelle char-Array
 bg.read_char_array=lese char-Zeichen
@@ -712,6 +712,14 @@ bg.create_number_float_array.description=Erzeuge ein Array f
 bg.setter_number_array.description=Setze den Wert eines Array-Feldes
 bg.read_number_array.description=Lese den Wert eines Array-Feldes
 
+bg.memcpy_string=memcpy
+bg.memcpy_string.description=copy a block of memory from a location to another 
+bg.memset_string=memset
+bg.memset_string.description=kopiere ein Zeichen/Wert wiederholt in einer Zeichenkette oder Tabelle
+bg.strcpy_string=strcpy
+bg.strcpy_string.description=kopiere eine Zeichenkette in eine andere
+
+bc.string=char-Array
 bc.position=Stelle
 bc.array=Array-Name
 bc.vecsize=Anzahl Werte
diff --git a/src/main/resources/com/ardublock/block/block-mapping.properties b/src/main/resources/com/ardublock/block/block-mapping.properties
index a09aed523ab6ffac0e2800f7a190370eda5a2b77..cf5ef858ed6aa667fb7054c14e8d6f8b28bb0536 100644
--- a/src/main/resources/com/ardublock/block/block-mapping.properties
+++ b/src/main/resources/com/ardublock/block/block-mapping.properties
@@ -238,6 +238,10 @@ create_char_array=com.ardublock.translator.block.arrays.CreateCharArrayBlock
 read_char_array=com.ardublock.translator.block.arrays.ReadCharArrayBlock
 setter_char_array=com.ardublock.translator.block.arrays.SetterCharArrayBlock
 
+memcpy_string=com.ardublock.translator.block.arrays.MemcpyBlock
+memset_string=com.ardublock.translator.block.arrays.MemsetBlock
+strcpy_string=com.ardublock.translator.block.arrays.StrcpyBlock
+
 #COMMUNICATION
 #****************************
 serial_read=com.ardublock.translator.block.communication.SerialReadBlock