Function to copy string (Iterative and Recursive)
Given two strings, copy one string to other using recursion. We basically need to write our own recursive version of strcpy in C/C++
Examples:
Input : s1 = "hello"
s2 = "geeksforgeeks"
Output : s2 = "hello"
Input : s1 = "geeksforgeeks"
s2 = ""
Output : s2 = "geeksforgeeks"Iterative :
Copy every character from s1 to s2 starting from index = 0 and in each call increase the index by 1 until s1 doesn’t reach to end;
C++
// Iterative CPP Program to copy one String // to another.#include <bits/stdc++.h>using namespace std;// Function to copy one string to other// assuming that other string has enough// space.void myCopy(char s1[], char s2[]){ int i = 0; for (i=0; s1[i] != '\0'; i++) s2[i] = s1[i]; s2[i] = '\0';}// Driver functionint main(){ char s1[100] = "GEEKSFORGEEKS"; char s2[100] = ""; myCopy(s1, s2); cout << s2; return 0;} |
Java
// Iterative Java Program to copy one String// to another.class GFG{ // Function to copy one string to other// assuming that other string has enough// space.static void myCopy(char s1[], char s2[]){ int i = 0; for (i = 0; i < s1.length; i++) s2[i] = s1[i];}// Driver codepublic static void main(String[] args){ char s1[] = "GEEKSFORGEEKS".toCharArray(); char s2[] = new char[s1.length]; myCopy(s1, s2); System.out.println(String.valueOf(s2));}}// This code contributed by Rajput-Ji |
Python3
# recursive Python Program to copy one String# to another.# Function to copy one string to otherdef copy_str(x,y): if len(y)==0: return x else: c = copy_str(x,(y)[1:-1]) return cx = input()y = input()print(copy_str(x,y))# This code contributed by deeksha20049@iiid.ac.in#deeksha20049 |
C#
// Iterative C# Program to copy one String// to another.using System;class GFG{ // Function to copy one string to other// assuming that other string has enough// space.static void myCopy(char []s1, char []s2){ int i = 0; for (i = 0; i < s1.Length; i++) s2[i] = s1[i];}// Driver codepublic static void Main(String[] args){ char []s1 = "GEEKSFORGEEKS".ToCharArray(); char []s2 = new char[s1.Length]; myCopy(s1, s2); Console.WriteLine(String.Join("", s2));}}// This code is contributed by 29AjayKumar |
Javascript
<script>// Iterative Javascript Program to copy one String// to another. // Function to copy one string to other// assuming that other string has enough// space.function myCopy(s1, s2){ let i = 0; for (i = 0; i < s1.length; i++) s2[i] = s1[i];}// Driver code // Driver Codelet s1 = "GEEKSFORGEEKS";let s2 = [];let index = 0;myCopy(s1, s2, index);document.write(s2.join(""));// This code contributed by shivanisinghss2110</script> |
Output:
GEEKSFORGEEKS
Recursive :
Copy every character from s1 to s2 starting from index = 0 and in each call increase the index by 1 until s1 doesn’t reach to end;
C++
// CPP Program to copy one String to// another using Recursion#include <bits/stdc++.h>using namespace std;// Function to copy one string in to other// using recursionvoid myCopy(char s1[], char s2[], int index = 0){ // copying each character from s1 to s2 s2[index] = s1[index]; // if string reach to end then stop if (s1[index] == '\0') return; // increase character index by one myCopy(s1, s2, index + 1);}// Driver functionint main(){ char s1[100] = "GEEKSFORGEEKS"; char s2[100] = ""; myCopy(s1, s2); cout << s2; return 0;} |
Java
// Java Program to copy one String to// another using Recursionclass GFG{ // Function to copy one string in to other // using recursion static void myCopy(char s1[], char s2[], int index) { // copying each character from s1 to s2 s2[index] = s1[index]; // if string reach to end then stop if (index == s1.length - 1) { return; } // increase character index by one myCopy(s1, s2, index + 1); } // Driver Code public static void main(String[] args) { char s1[] = "GEEKSFORGEEKS".toCharArray(); char s2[] = new char[s1.length]; int index = 0; myCopy(s1, s2, index); System.out.println(String.valueOf(s2)); }}// This code is contributed by PrinciRaj1992 |
Python3
# recursive Python Program to copy one String# to another.# Function to copy one string to otherdef copy_str(x, y): if len(y) == 0: return x else: c = copy_str(x, (y)[1:-1]) return cx = input("hello")y = input("no")print(copy_str(x, y))# This code contributed by deeksha20049@iiid.ac.in |
C#
// C# Program to copy one String to// another using Recursionusing System;class GFG{ // Function to copy one string in to other // using recursion static void myCopy(char []s1, char []s2, int index) { // copying each character from s1 to s2 s2[index] = s1[index]; // if string reach to end then stop if (index == s1.Length - 1) { return; } // increase character index by one myCopy(s1, s2, index + 1); } // Driver Code public static void Main(String[] args) { char []s1 = "GEEKSFORGEEKS".ToCharArray(); char []s2 = new char[s1.Length]; int index = 0; myCopy(s1, s2, index); Console.WriteLine(String.Join("", s2)); }}// This code is contributed by Princi Singh |
Javascript
<script>// Javascript program to copy one String to// another using Recursion // Function to copy one string in to other// using recursionfunction myCopy(s1, s2, index){ // Copying each character from s1 to s2 s2[index] = s1[index]; // If string reach to end then stop if (index == s1.length - 1) { return; } // Increase character index by one myCopy(s1, s2, index + 1);}// Driver Codevar s1 = "GEEKSFORGEEKS";var s2 = [];var index = 0;myCopy(s1, s2, index);document.write(s2.join(""));// This code is contributed by gauravrajput1</script> |
Output:
GEEKSFORGEEKS



.png)