C Program to Copy One String to Another Using Pointers

1. Introduction

In C, strings are simply arrays of characters, and pointers provide a way to access the memory addresses of these characters. While there are built-in library functions to copy strings, manually doing so using pointers offers a deeper understanding of how string manipulation works at a lower level. This post will demonstrate how to copy one string to another using pointers.

2. Program Overview

1. Declare two character arrays (strings).

2. Declare two character pointers.

3. Use the pointers to traverse the source string and simultaneously copy each character to the destination string.

4. Terminate the destination string with a null character.

3. Code Program

#include <stdio.h>

// Function to copy one string to another using pointers
void copyStrings(char *source, char *destination) {
    while (*source) {
        *destination = *source;
    *destination = '\0';  // Terminate the destination string

int main() {
    char source[100], destination[100];

    // Input the source string
    printf("Enter the source string:\n");

    // Copy the source string to destination
    copyStrings(source, destination);

    // Display the copied string
    printf("Copied string is: %s\n", destination);

    return 0;


Enter the source string:
Hello World!
Copied string is: Hello World!

4. Step By Step Explanation

1. We start with the declaration of two character arrays, source and destination, to store our source and copied strings.

2. The copyStrings function is tasked with copying one string to another. This function uses two pointers (source and destination) to move through the characters of each string. The while loop inside this function continues until the end of the source string is reached. For each iteration:

- The character from the source string is copied to the destination string.- Both pointers are incremented to move to the next character.

3. After copying, the destination string is terminated with a null character to make it a valid string.

4. In the main function, the user is prompted to input a source string. We use the gets function to read it (note: using gets can be risky because of potential buffer overflows; here, it's used for simplicity).

5. The copyStrings function is called to perform the copying.

6. The copied string (destination) is then displayed to the user.