w3resource logo
C Programming Exercises

C Exercises: Copy One string to another

C Recursion : Exercise-19 with Solution

Write a program in C to copy One string to another using recursion.

Sample Solution:

C Code:

#include <stdio.h>
 
void copyString(char [], char [], int);
 
int main()
{
    char stng1[20], stng2[20];
    printf("\n\n Recursion : Copy One string to another :\n");
	printf("---------------------------------------------\n"); 	
 
    printf(" Input the  string to copy : ");
    scanf("%s", stng1);
    copyString(stng1, stng2, 0);
    printf("\n The string successfully copied.\n\n");
    printf(" The first string is : %s\n", stng1);
    printf(" The copied string is : %s\n\n", stng2);
    return 0;
}
 
void copyString(char stng1[], char stng2[], int ctr)
{
    stng2[ctr] = stng1[ctr];
    if (stng1[ctr] == '\0')
        return;
    copyString(stng1, stng2, ctr + 1);
}

Sample Output:

 Recursion : Copy One string to another :                                                                     
---------------------------------------------                                                                 
 Input the  string to copy : w3resource                                                                       
                                                                                                              
 The string successfully copied.                                                                              
                                                                                                              
 The first string is : w3resource                                                                             
 The copied string is : w3resource  

Flowchart:

Flowchart: Copy One string to another.

C Programming Code Editor:

#include <stdio.h>
 
void copyString(char [], char [], int);
 
int main()
{
    char stng1[20], stng2[20];
    printf("\n\n Recursion : Copy One string to another :\n");
	printf("---------------------------------------------\n"); 	
 
    printf(" Input the  string to copy : ");
    scanf("%s", stng1);
    copyString(stng1, stng2, 0);
    printf("\n The string successfully copied.\n\n");
    printf(" The first string is : %s\n", stng1);
    printf(" The copied string is : %s\n\n", stng2);
    return 0;
}
 
void copyString(char stng1[], char stng2[], int ctr)
{
    stng2[ctr] = stng1[ctr];
    if (stng1[ctr] == '\0')
        return;
    copyString(stng1, stng2, ctr + 1);
}

Improve this sample solution and post your code through Disqus.