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 function int 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 code public 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
# Iterative Python Program to copy one String # to another. # Function to copy one string to other # assuming that other string has enough # space. def myCopy(s1, s2): for i in range ( len (s1)): s2[i] = s1[i]; # Driver code s1 = "GEEKSFORGEEKS" ; s2 = [''] * ( len (s1)); myCopy(s1, s2); print (("".join(s2))); # This code contributed by PrinciRaj1992 |
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 code public 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 |
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 recursion void 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 function int 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 Recursion 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); System.out.println(String.valueOf(s2)); } } // This code is contributed by PrinciRaj1992 |
Python3
# Python3 Program to copy one String to # another using Recursion # Function to copy one string in to other # using recursion def myCopy(s1, s2, index): # copying each character from s1 to s2 s2[index] = s1[index]; # if string reach to end then stop if (index = = len (s1) - 1 ): return ; # increase character index by one myCopy(s1, s2, index + 1 ); # Driver Code if __name__ = = '__main__' : s1 = "GEEKSFORGEEKS" ; s2 = [ 0 ] * ( len (s1)); index = 0 ; myCopy(s1, s2, index); print ("".join(s2)); # This code is contributed by 29AjayKumar |
C#
// C# Program to copy one String to // another using Recursion using 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 |
GEEKSFORGEEKS
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.