diff --git a/src/main/java/com/ardublock/translator/block/arrays/MemcpyBlock.java b/src/main/java/com/ardublock/translator/block/arrays/MemcpyBlock.java
new file mode 100644
index 0000000000000000000000000000000000000000..9ad590dcf5aa8ce44262517192c88a56abd85938
--- /dev/null
+++ b/src/main/java/com/ardublock/translator/block/arrays/MemcpyBlock.java
@@ -0,0 +1,49 @@
+package com.ardublock.translator.block.arrays;
+
+
+import java.util.ResourceBundle;
+
+import com.ardublock.translator.Translator;
+import com.ardublock.translator.block.TranslatorBlock;
+import com.ardublock.translator.block.exception.BlockException;
+import com.ardublock.translator.block.exception.SocketNullException;
+import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;
+import com.ardublock.translator.block.numbers.ConstantStringBlock;
+import com.ardublock.translator.block.numbers.LocalVariableStringBlock;
+import com.ardublock.translator.block.numbers.VariableStringBlock;
+
+public class MemcpyBlock extends TranslatorBlock
+{
+	private static ResourceBundle uiMessageBundle = ResourceBundle.getBundle("com/ardublock/block/ardublock");
+	
+	public MemcpyBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
+	{
+		super(blockId, translator, codePrefix, codeSuffix, label);
+	}
+
+	@Override
+	public String toCode() throws SocketNullException, SubroutineNotDeclaredException
+	{
+		TranslatorBlock tb_destination = this.getRequiredTranslatorBlockAtSocket(0);
+		TranslatorBlock tb_source	   = this.getRequiredTranslatorBlockAtSocket(1);
+		TranslatorBlock tb_length	   = this.getRequiredTranslatorBlockAtSocket(2);
+
+		String destinationArray = tb_destination.toCode();
+		String sourceArray      = tb_source.toCode();
+		String lengthOfData      = tb_length.toCode();
+
+
+		if (!(tb_destination instanceof VariableStringBlock) && !(tb_destination instanceof LocalVariableStringBlock)  && !(tb_destination instanceof ConstantStringBlock) 
+			&& !(tb_source instanceof VariableStringBlock) && !(tb_source instanceof LocalVariableStringBlock)  && !(tb_source instanceof ConstantStringBlock)) {
+		      throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
+		    }
+		
+		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
new file mode 100644
index 0000000000000000000000000000000000000000..715e8ac84a4564352a6dbe767b5745b2346ae3b0
--- /dev/null
+++ b/src/main/java/com/ardublock/translator/block/arrays/MemsetBlock.java
@@ -0,0 +1,48 @@
+package com.ardublock.translator.block.arrays;
+
+
+import java.util.ResourceBundle;
+
+import com.ardublock.translator.Translator;
+import com.ardublock.translator.block.TranslatorBlock;
+import com.ardublock.translator.block.exception.BlockException;
+import com.ardublock.translator.block.exception.SocketNullException;
+import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;
+import com.ardublock.translator.block.numbers.ConstantStringBlock;
+import com.ardublock.translator.block.numbers.LocalVariableStringBlock;
+import com.ardublock.translator.block.numbers.VariableStringBlock;
+
+public class MemsetBlock extends TranslatorBlock
+{
+	private static ResourceBundle uiMessageBundle = ResourceBundle.getBundle("com/ardublock/block/ardublock");
+	
+	public MemsetBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
+	{
+		super(blockId, translator, codePrefix, codeSuffix, label);
+	}
+
+	@Override
+	public String toCode() throws SocketNullException, SubroutineNotDeclaredException
+	{
+		TranslatorBlock tb_destination = this.getRequiredTranslatorBlockAtSocket(0);
+		TranslatorBlock tb_insert	   = this.getRequiredTranslatorBlockAtSocket(1);
+		TranslatorBlock tb_length	   = this.getRequiredTranslatorBlockAtSocket(2);
+
+		String destinationArray   = tb_destination.toCode();
+		String insertChar         = tb_insert.toCode();
+		String numOfReplacedChars = tb_length.toCode();
+
+
+		if (!(tb_destination instanceof VariableStringBlock) && !(tb_destination instanceof LocalVariableStringBlock)  && !(tb_destination instanceof ConstantStringBlock)) {
+		      throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
+		    }
+		
+		String ret = "memset("+destinationArray+", " + insertChar + ", "+numOfReplacedChars+")";
+
+		return ret;
+	}
+
+}
+
+
+
diff --git a/src/main/java/com/ardublock/translator/block/arrays/SetterCharArrayBlock.java b/src/main/java/com/ardublock/translator/block/arrays/SetterCharArrayBlock.java
index 7a95747e61ee663012a90ff24d3792fe50ddac73..d6bc67402ce25a1c39f20a2d02763eca416c17b7 100644
--- a/src/main/java/com/ardublock/translator/block/arrays/SetterCharArrayBlock.java
+++ b/src/main/java/com/ardublock/translator/block/arrays/SetterCharArrayBlock.java
@@ -33,7 +33,7 @@ public class SetterCharArrayBlock extends TranslatorBlock
 		String value        = tb_Value.toCode();
 		
 		if (!(tb_Name instanceof VariableStringBlock) && !(tb_Name instanceof LocalVariableStringBlock)  && !(tb_Name instanceof ConstantStringBlock)) {
-		      throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.number_var_slot"));
+		      throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
 		    }
 		/*	if (!(tb_Pos instanceof VariableNumberBlock) && !(tb_Pos instanceof LocalVariableNumberBlock) && !(tb_Pos instanceof NumberBlock)) {
 		      throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.number_var_slot"));
diff --git a/src/main/java/com/ardublock/translator/block/arrays/StrcpyBlock.java b/src/main/java/com/ardublock/translator/block/arrays/StrcpyBlock.java
new file mode 100644
index 0000000000000000000000000000000000000000..d233fbef0210f5fd51fda9234d3323b9bef761de
--- /dev/null
+++ b/src/main/java/com/ardublock/translator/block/arrays/StrcpyBlock.java
@@ -0,0 +1,47 @@
+package com.ardublock.translator.block.arrays;
+
+
+import java.util.ResourceBundle;
+
+import com.ardublock.translator.Translator;
+import com.ardublock.translator.block.TranslatorBlock;
+import com.ardublock.translator.block.exception.BlockException;
+import com.ardublock.translator.block.exception.SocketNullException;
+import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;
+import com.ardublock.translator.block.numbers.ConstantStringBlock;
+import com.ardublock.translator.block.numbers.LocalVariableStringBlock;
+import com.ardublock.translator.block.numbers.VariableStringBlock;
+
+public class StrcpyBlock extends TranslatorBlock
+{
+	private static ResourceBundle uiMessageBundle = ResourceBundle.getBundle("com/ardublock/block/ardublock");
+	
+	public StrcpyBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
+	{
+		super(blockId, translator, codePrefix, codeSuffix, label);
+	}
+
+	@Override
+	public String toCode() throws SocketNullException, SubroutineNotDeclaredException
+	{
+		TranslatorBlock tb_destination = this.getRequiredTranslatorBlockAtSocket(0);
+		TranslatorBlock tb_source	   = this.getRequiredTranslatorBlockAtSocket(1);
+
+		String destinationArray = tb_destination.toCode();
+		String sourceArray      = tb_source.toCode();
+
+
+		if (!(tb_destination instanceof VariableStringBlock) && !(tb_destination instanceof LocalVariableStringBlock)  && !(tb_destination instanceof ConstantStringBlock) 
+			&& !(tb_source instanceof VariableStringBlock) && !(tb_source instanceof LocalVariableStringBlock)  && !(tb_source instanceof ConstantStringBlock)) {
+		      throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
+		    }
+
+		String ret = "strcpy("+destinationArray+", " + sourceArray + ")";
+
+		return ret;
+	}
+
+}
+
+
+