Search code examples
arraysfunctionpointerscopystring-iteration

C Programming - String Copier


I'm having issues with the following program.

#include<stdio.h>
#include<string.h>


void copy(char *dst, char *src) {
    // Code for copying a string goes here
    while(*src != '\0'){ // run loop while last character of src is not terminating character  
        *dst = *src; // copying values from src to dst
        src++; // increment by 1
        dst++; // increment by 1
    }
    *dst = '\0'; // ending string
}

int main(){
    char srcString[] = "We promptly judged antique ivory buckles for the next prize!";
    char dstString = strlen(srcString) + 1; // dstString == length of srcString + 1

    copy(dstString, srcString); // Calling copy function with parameters
    printf("%s", dstString); // Printing dstString == srcString

}

Basically I'm trying to create my own strcpy() function to learn how strcpy() works under the hood. srcString is supposed to be copied to dstString by using pointers. When I run the program in Clion I don't get any output.


Solution

  • Turns out I never decalred that char dstString was an array. Also I needed to include my strlen(srcString) + 1 formula within the curly brackets [] to initialize array like so:

    char dstString[strlen(srcString) + 1];