Skip to content
Home » C Program To Write A String Copy Function

C Program To Write A String Copy Function

    This program copy text from one string to another string character-by-character with the help of string copy function. C programming language does have a builtin string copy function called strcpy() located in String.h header file.

    In this example, you will write a program that uses a user-defined string copy function and does not use the builtin function.

    This program is written using Dev-C++ compiler installed on a Windows 7 64-bit machine. If you want to use a different compiler, then modify the program source code to get an error-free program.

    Also, before you begin, learn following C programming concepts if unfamiliar with them.

    Problem Definition

    The program reads a string and then copy that string to another string and display the results.Each string is an array of characters with a null character at the end of the string. Make sure that the size of the string is same or greater than string 2 size, otherwise, there will be problem copying string 1 to string 2.

    Start copying string character by character from string 1 to string 2, until we reach a null character.

    Assign a null character to the string 2 when all characters of string 1 are copied successfully. This is because every string in C language must end with a ‘\0’.

    For Example:-

    Suppose the program reads “hello” to string 1, and then the starts copying string 1 to string 2 one character at a time until a null is encountered. See figure below.

    String Copy Diagram
    String Copy Diagram

    Flowchart – String Copy Function

    Flowchart - C Program to Write a String Copy Function
    Flowchart – C Program to Write a String Copy Function

    Program Code – String Copy Function

    #include <stdio.h>
    #include <string.h>
    #include <conio.h>
    int main ()
    {
        char s1 [10];
        char s2 [10];
        int i;
        void strcopy (char s2 [10], char s1 [10]);
        /* Read the String 1 */
        printf ("Enter String 1 :");
        gets (s1);
        /* Copy the String 1 to String 2 */
        strcopy (s2, s1);
        /* Print both the functions */
            for (i=0; i<35; i++)
        printf("_");printf("\n\n");
        printf("String2=%s \n\nString1=%s\n",s2,s1);
        for(i=0;i<35;i++)
        printf("_");printf("\n\n");
        system("PAUSE");
        return 0;
    }
    void strcopy (char s2[10], char s1[10])
    {
        int i= 0;
        while(s1[i] !='\0')
        {
            s2[i] = s1[i];
            ++i;
        }
        s2[i]='\0';
    }

    Output

    Enter String 1:Hello world
    __________________________________________
    String2=Hello world
    
    String1=Hello world
    __________________________________________